我有这个(简化的)运行表,其中每个完成的运行都算作一个点:
| email | finished |
|-------|----------|
| a | 1 |
| a | 1 |
| a | 0 |
| b | 1 |
| c | 0 |
Run Code Online (Sandbox Code Playgroud)
我有这个
SELECT *, COUNT( * ) AS points
FROM `runs`
WHERE finished IS TRUE
GROUP BY email
Run Code Online (Sandbox Code Playgroud)
结果是:
| email | points |
|-------|----------|
| a | 2 |
| b | 1 |
Run Code Online (Sandbox Code Playgroud)
问题是我还需要有关C的信息,因为C尚未完成运行,所以它具有0分
预期结果:
| email | points |
|-------|----------|
| a | 2 |
| b | 1 |
| c | 0 |
Run Code Online (Sandbox Code Playgroud)
删除where条款:
SELECT r.email, SUM( finished IS TRUE ) AS points
FROM `runs` r
GROUP BY email;
Run Code Online (Sandbox Code Playgroud)
是的,您还可以在sum()以下位置删除过滤器:
SELECT r.email, SUM(finished) AS points
FROM `runs` r
GROUP BY email;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |