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 字段中返回。
解决评论 打赏 举报无用 1