码仔ROC 2023-03-06 11:18 采纳率: 50%
浏览 25
已结题

查询不同年度数据并在不同字段中展示

sql问题
带有时间字段的一张表,传参“年度”。查询出这一年度以及上一年度的数据。并且是分别在两个字段中展示。

  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-03-06 11:22
    关注

    该回答引用ChatGPT

    在Oracle和MySQL中,可以使用类似的SQL查询来获取所需的结果:

    Oracle SQL:

    
    SELECT
        TO_CHAR(date_column, 'YYYY') AS year,
        COUNT(*) AS count
    FROM
        your_table
    WHERE
        TO_CHAR(date_column, 'YYYY') IN (:year, TO_CHAR(ADD_MONTHS(TO_DATE(:year, 'YYYY'), -12), 'YYYY'))
    GROUP BY
        TO_CHAR(date_column, 'YYYY')
    
    

    MySQL SQL:

    
    SELECT
        YEAR(date_column) AS year,
        COUNT(*) AS count
    FROM
        your_table
    WHERE
        YEAR(date_column) IN (:year, YEAR(DATE_SUB(DATE_ADD(DATE_FORMAT(:year, '%Y-01-01'), INTERVAL 1 YEAR), INTERVAL 1 DAY)))
    GROUP BY
        YEAR(date_column)
    
    

    这里的 :year 是传递的参数值,表示需要查询的年份。

    这个查询将 date_column 字段按年份进行分组,并计算每个年份的行数。使用 IN 运算符指定需要查询的年份,使用 ADD_MONTHS 或 DATE_ADD/DATA_SUB 函数来获取上一年的年份。最后,将结果分别放置在 year 和 count 字段中返回。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月6日
  • 创建了问题 3月6日