2010-10-08 112 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