[英]SQL Group Multiple Columns and count
我有一个包含以下字段的生产力表
EmpName Client Sclient BillGrp WkdDate
KK Parallon Atlanta IP 12-Jul-16
KK Kiwitek Ozark OP 11-Jul-16
JJ Parallon Atlanta OP 10-Jul-16
JJ Kiwitek Ozark IP 11-Jul-16
我需要这样的东西
EmpName Client BillGrp Count
KK Parallon IP 2
JJ Parallon OP 2
简而言之,每个 EmpName 必须只有一个条目,并且该 EmpName 具有最大条目的 Client 和 BillGrp 将与 Count 字段中的总计数一起返回
您声明这是工作查询,但您是否发现 where 子句有任何问题? 您多余地重复了一个连接谓词,第二个谓词也可以被视为连接的一部分。
如果在 group by 子句中包含 EmpName,那么要求 MAX(EmpName) 有什么意义?
SELECT
MAX(EmpName)
, MAX(P.Client)
, MAX(P.BillGrp)
, Target
, COUNT(*)
FROM Productivity P
LEFT JOIN Targets T ON P.Client = T.Client
WHERE P.Client = T.Client
AND P.BillGrp = T.BillGrp
GROUP BY
P.EmpName
, T.Target
select 子句的非聚合列应列在 group by 子句中(反之亦然),即:
SELECT
T.Target
, MAX(EmpName)
, MAX(P.Client)
, MAX(P.BillGrp)
, COUNT(*)
FROM Productivity P
LEFT JOIN Targets T ON P.Client = T.Client
AND P.BillGrp = T.BillGrp
GROUP BY
T.Target
SELECT EmpName, Client, BillGrp, COUNT(*) AS `count`
FROM table
GROUP BY EmpName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.