MySQL计数点

Jor*_*ola 1 mysql sql

我有这个(简化的)运行表,其中每个完成的运行都算作一个点:

| 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)

Yog*_*rma 6

删除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)