我有一个客户端表,如下所示:
ID PNO PID EVENT GID A PS
1 04 1 P&R_A 2 1.0 2
2 03 1 P&R(j) 2 1.0 2
3 04 1 P&R(j) 2 1.0 2
4 04 1 P&R(j) 2 1.0 2
5 04 1 P&R(j) 2 1.0 3
6 03 1 P&R_A 2 1.0 2
7 02 1 LP 2 1.0 2
8 06 1 LP 2 0.5 1
当我运行以下查询时
SELECT PNO,EVENT, SUM(A) AS Atts, SUM(PS) AS Points FROM clients
WHERE ID = 1 GROUP BY PNO
我只得到
PNO PID EVENT GID Atts Points
02 1 LP 2 1.0 2
03 1 P&R_A 2 2.0 4
04 1 P&R(j) 2 4.0 9
06 1 P&R(j) 2 0.5 1
而不是
PNO PID EVENT GID Atts Points
02 1 LP 2 1.0 2
03 1 P&R_A 2 2.0 4
04 1 P&R(j) 2 3.0 6
04 1 P&R_A 2 1.0 3
06 1 P&R(j) 2 0.5 1
通过子句在组中添加事件。
从客户端选择PNO、EVENT、SUM(A)作为Atts,SUM(PS)作为Points其中ID=1组(按PNO),事件
您必须在GROUP BY中添加两列,类似于:
SELECT PNO,EVENT, SUM(A) AS Atts, SUM(PS) AS Points FROM clients
WHERE ID = 1 GROUP BY PNO, EVENT
通过GROUP BY,您可以根据PNO和EVENT的唯一性对条目进行分组,然后根据该"分组"计算聚合函数(在您的情况下为SUM,但也包括AVG、MIN、MAX等)。