2010-10-08 111 views
0

我有一個表,我試圖從列的日期(時間戳),RiskCategory(文本)和點(int)的地方拉一些趨勢分析。我試圖返回的是每個日期SUM RiskCategory的點和組。我可以通過以下方式獲得最新信息:SQL GROUP BY CLAUSE

SELECT Date,RiskCategory,SUM(Point) AS Total 
FROM risktrend WHERE DATE(Date) >= (SELECT MAX(DATE(Date)) FROM risktrend) 
GROUP BY RiskCategory; 

但是我正在爲所有日期返回而掙扎。我正在使用MySQL。

我應該進一步詳細說明,任何日期都可以有多個條目,但RiskCategory只能是Administrative,Availability或Capacity。所以,對於每一個日期,我應該看到後三者的積分總和。例如,

2010-10-06 Capacity 508 
2010-10-06 Administrative 113 
2010-10-06 Availability 243 
2010-10-07 Capacity 493 
2010-10-07 Administrative 257 
2010-10-07 Availability 324 

回答

2

您需要通過子句日期添加到您的組:

SELECT Date, 
     RiskCategory, 
     SUM(Point) AS Total 
FROM risktrend 
WHERE DATE(Date) >= (SELECT MAX(DATE(Date)) FROM risktrend) 
GROUP BY Date, RiskCategory; 
+0

你在正確的方向指向我。 SQL結束如下:SELECT Date, RiskCategory, SUM(Point)AS Total FROM risktrend GROUP BY DATE(Date),RiskCategory; – user469731 2010-10-08 00:54:59