输出类似:
年份->月->产品名称->该年的总记录数->该年的平均记录数
我的查询返回了全年的总数和平均值,我也希望按月细分:
SELECT PRODUCT_ID,PRODUCT_NAME,EXTRACT(YEAR FROM DATE), COUNT(ID) AS TOTAL_COUNT,COUNT(ID)/COUNT(DISTINCT(EXTRACT(DATE))) AS AVG_NO_RECORDS
FROM TABLE
GROUP BY PRODUCT_ID,PRODUCT_NAME,EXTRACT(YEAR FROM DATE)
答案 0 :(得分:0)
除了您在此示例查询中使用了一堆无效的东西之外(table
是无效的表名,date
是无效的列名,extract
中的一个是错误的) ,则可以在日期列上使用TO_CHAR
并使用所需的格式掩码(例如mm
),并对其进行分组。像这样:
SELECT PRODUCT_ID,
PRODUCT_NAME,
EXTRACT(YEAR FROM DATE),
--
to_char(date, 'mm') as month, --> this ...
--
COUNT(ID) AS TOTAL_COUNT,
COUNT(ID)/COUNT(DISTINCT(EXTRACT(DATE))) AS AVG_NO_RECORDS
FROM TABLE
GROUP BY PRODUCT_ID,
PRODUCT_NAME,
EXTRACT(YEAR FROM DATE),
to_char(date, 'mm') --> ... and this
另一方面,如果您已经按年和月分组,请查看是否可以为此使用单个列,例如to_char(date_column, 'mm.yyyy')
。