过滤掉 HAVING 子句中的字段组合
Filter out combination of fields in HAVING clause
我知道这可能很基础,但我认为在这里会快得多。
+----------+----------+---------+
| PersonID | No Shows | Cancels |
+----------+----------+---------+
| 1 | 2 | 0 |
| 1 | 5 | 1 |
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 1 | 0 |
| 3 | 0 | 0 |
| 4 | 1 | 1 |
| 4 | 3 | 2 |
| 4 | 0 | 0 |
+----------+----------+---------+
我正在尝试排除将“NoShows”和“Cancelles”的总计组合为 0 的人。例如:PersonID=2
尝试:
SELECT
PersonID
,SUM(NoShows) AS TotalNS
,SUM(Cancels) AS TotalCanc
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) > 0 AND SUM(Cancels) > 0
这显然是行不通的,因为如果 NoShows 或 Cancells 中的任何一个为 0,它将开始删除人员。例如:PersonID=3
期望的输出:
+--------------+----------+---------+
| PersonID | No Shows | Cancels |
+--------------+----------+---------+
| 1 | 7 | 1 |
| 3 | 1 | 0 |
| 4 | 4 | 3 |
+--------------+----------+---------+
试试这个,如果您遇到任何困难,请告诉我。
SELECT
PersonID
,SUM(NoShows) AS TotalNS
,SUM(Cancels) AS TotalCanc
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) > 0 or SUM(Cancels) > 0
您的问题是:
I'm trying to obtain only those which have combination of both Total
of NoShows and Cancels as 0. Eg: PersonID=2
答案是:
SELECT PersonID
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) = 0 AND SUM(Cancels) = 0;
我不清楚为什么你会接受不同逻辑的答案。
我知道这可能很基础,但我认为在这里会快得多。
+----------+----------+---------+
| PersonID | No Shows | Cancels |
+----------+----------+---------+
| 1 | 2 | 0 |
| 1 | 5 | 1 |
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 1 | 0 |
| 3 | 0 | 0 |
| 4 | 1 | 1 |
| 4 | 3 | 2 |
| 4 | 0 | 0 |
+----------+----------+---------+
我正在尝试排除将“NoShows”和“Cancelles”的总计组合为 0 的人。例如:PersonID=2
尝试:
SELECT
PersonID
,SUM(NoShows) AS TotalNS
,SUM(Cancels) AS TotalCanc
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) > 0 AND SUM(Cancels) > 0
这显然是行不通的,因为如果 NoShows 或 Cancells 中的任何一个为 0,它将开始删除人员。例如:PersonID=3
期望的输出:
+--------------+----------+---------+
| PersonID | No Shows | Cancels |
+--------------+----------+---------+
| 1 | 7 | 1 |
| 3 | 1 | 0 |
| 4 | 4 | 3 |
+--------------+----------+---------+
试试这个,如果您遇到任何困难,请告诉我。
SELECT
PersonID
,SUM(NoShows) AS TotalNS
,SUM(Cancels) AS TotalCanc
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) > 0 or SUM(Cancels) > 0
您的问题是:
I'm trying to obtain only those which have combination of both Total of NoShows and Cancels as 0. Eg: PersonID=2
答案是:
SELECT PersonID
FROM Table1
GROUP BY PersonID
HAVING SUM(NoShows) = 0 AND SUM(Cancels) = 0;
我不清楚为什么你会接受不同逻辑的答案。