mysql 带条件的算术运算计数

mysql count with aritmmetic operation with condition

我有两个 table。 job_table.

job_id  job_type    job_type       *****
1       1           Day            *****
2       2           Night
3       3           Day & Night.
4       3           Day & Night. 

和task_entry table.

task_entry_id    job_type       task_option_type
1                1             Day
2                1             Day
3                1             Day
4                2             Night
5                3             Day  
6                3             Night
7                3             Day  
8                3             Night

如果作业 ID 为 3,则将有 2 个条目,一个用于白天,一个用于夜间。 否则只有一项。

我想像这样获取 task_entries 的职位总数,

job_id      task_entry_count
1           3
2           1
3           2

也就是说,如果 job_type 是 3,那么计数应该是 count/2。 (早晚)。 否则计数应该是正常计数。

您可以 JOIN 将两个表放在一起,然后使用 GROUP BY 得到职位总数。

SELECT jt.job_id,
    ROUND(SUM (CASE WHEN jt.job_type = 3 THEN 0.5 ELSE 1 END), 0) AS task_entry_count
FROM job_table jt INNER JOIN task_entry te
ON jt.job_type = te.job_type
GROUP BY jt.job_id