带有条件的aritmmetic操作的mysql计数

时间:2015-07-07 03:17:37

标签: mysql math conditional

我有两张桌子。 job_table。

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

和task_entry表。

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个条目用于Day,一个用于Night。 否则只有一个条目。

我想获得像这样的task_entries的作业总数,

job_id      task_entry_count
1           3
2           1
3           2

即如果job_type为3,则count应为count / 2。 (白天&安培;晚)。 其他计数应该是正常计数。

1 个答案:

答案 0 :(得分: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