【发布时间】:2022-01-14 23:05:33
【问题描述】:
我这里有这个 SQL 语句:
SELECT DATETIME, DWH_ACCOMODATIONS.NAME, SUM(NIGHTS)
FROM dwh_data JOIN DWH_ACCOMODATIONS ON dwh_data.fk_accomodation = DWH_ACCOMODATIONS.CODE
WHERE dwh_data.fk_accomodation = 998 AND DATETIME BETWEEN 201001 AND 201012
GROUP BY DWH_ACCOMODATIONS.NAME, DATETIME, NIGHTS;
这个语句给了我这个结果:
DATETIME NAME SUM(NIGHTS)
-------------- -------------- --------------
201011 Hotel 1<998> 12689
201012 Hotel 1<998> 18495
201012 Hotel 1<998> 4958
201012 Hotel 1<998> 37580
201011 Hotel 1<998> 85938
201011 Hotel 1<998> 27488
201011 Hotel 1<998> 9874
如您所见,问题是日期时间和一个酒店名称在表中重复
现在我想得到这样的结果:
DATETIME NAME SUM(NIGHTS)
-------------- -------------- --------------
201011 Hotel 1<998> 1268949
201012 Hotel 1<998> 1869859
当然也应该总结夜晚。
我已经在 GROUP BY 中尝试过:
GROUP BY ROLLUP(DWH_ACCOMODATIONS.NAME), ROLLUP(DATETIME), ROLLUP(NIGHTS)
【问题讨论】: