记录计数和记录计数平均值查询-Oracle
输出如下: 年度->月份->产品名称->年度记录总数->年度记录平均数 我的查询返回全年的总数和平均数,我还希望按月份进行细分:记录计数和记录计数平均值查询-Oracle,oracle,Oracle,输出如下: 年度->月份->产品名称->年度记录总数->年度记录平均数 我的查询返回全年的总数和平均数,我还希望按月份进行细分: 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
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)
除了在这个示例查询中使用了大量无效内容(
table
是无效的表名,date
是无效的列名,其中一个extract
s是错误的)之外,您还可以使用对日期列使用所需的格式掩码(例如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')
您好,欢迎使用SO。请共享您的表结构、输入记录和预期输出。请查收