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
我有两个 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