我有以下内容:

SELECT COUNT(*),DAYNAME(sip_Date) AS DAY,sip_callid  FROM request_line WHERE DAYNAME(sip_Date) = 'Saturday' GROUP BY sip_callid;


输出:

+ ---------- + ---------- + --------------------------- ---------- +
| COUNT(*)| DAY | sip_callid |
+ ---------- + ---------- + --------------------------- ---------- +
| 6 |周六| 133E840E-F6A411DE-AA5C9CC8-17D97B68 |
| 6 |周六| 162BF117-F6A611DE-A986A3C8-FB0ED04D |
| 18 |周六| 163C78CD-F6A611DE-9FC6D5B8-87CB70FC |
| 12 |周六| 1A7C93B6-F6A711DE-91F4BA52-B031BEF4 |
| 6 |周六| 1AB2BC9C-F6A311DE-A972A3C8-FB0ED04D |
| 4 |周六| 1F7E3D6C-F6AC11DE-A045D5B8-87CB70FC |
| 4 |周六| 1FA68517-F6AC11DE-A048D5B8-87CB70FC |
| 4 |周六| 1FCECD5A-F6AC11DE-A04AD5B8-87CB70FC |
| 4 |周六| 1FEDED7C-F6AC11DE-A04DD5B8-87CB70FC |
| 6 |周六| 2625EFE-F6A311DE-A96FA3C8-FB0ED04D |
+ ---------- + ---------- + --------------------------- ---------- +


但是我每天需要计数每个唯一的“ sip_callid”,因此我需要一个类似以下的输出:

+ ---------- + ---------- +
| COUNT(*)| DAY |
+ ---------- + ---------- +
| 70 |周六|


但是我似乎无法对sip_callid上的group by执行此操作。如果我在DAY进行分组,那么即使sip_callid显然相同,我也会得到所有行。
任何帮助将不胜感激。

最佳答案

我认为您需要COUNT(DISTINCT)

像这样

SELECT  DAYNAME(sip_Date) AS DAY,
        COUNT(DISTINCT sip_callid)
FROM    request_line
WHERE DAYNAME(sip_Date) = 'Saturday'
GROUP BY DAYNAME(sip_Date)

10-06 05:17