【发布时间】:2019-02-04 07:06:26
【问题描述】:
我有一个列表,每个部分基本上包含相同的字段。
- p_ticket1_m_site_data | - p_ticket1_ticket | - p_ticket1_last_row
- p_ticket2_m_site_data | - p_ticket2_ticket | - p_ticket2_last_row
- p_ticket3_m_site_data | - p_ticket3_ticket | - p_ticket3_last_row
我可以单独对每张桌子进行计数:
SELECT COUNT( * ) AS tot_sites, IFNULL( COUNT(
CASE WHEN p_ticket1_m_site_data.m_date_target = DATE( NOW( ) )
THEN 1
ELSE NULL
END ),0) AS todays_target, IFNULL( COUNT(
CASE WHEN (
p_ticket1_m_site_data.m_date_target = DATE( NOW( ) )
AND p_ticket1_ticket.t_status =9 )
THEN 1
ELSE NULL
END ),0
) AS todays_achieve, IFNULL( COUNT(
CASE WHEN p_ticket1_ticket.t_status =9
THEN 1
ELSE NULL
END ),0 ) AS tot_in
FROM p_ticket1_m_site_data
LEFT JOIN p_ticket1_last_row ON p_ticket1_last_row.t_m_id = p_ticket1_m_site_data.m_id
AND p_ticket1_last_row.t_req_type = '04_int_finish_ack'
LEFT JOIN p_ticket1_ticket ON p_ticket1_ticket.t_id = p_ticket1_last_row.t_id
WHERE p_ticket1_m_site_data.m_status =1
如果我想统计ticket1、ticket2、ticket3 的所有站点总数,我应该怎么做?
请帮帮我,谢谢。 . .
使用 UNION ALL 的示例:
我只是在上面的代码中为ticket1 和ticket2 使用了UNION ALL,但这不是我想要的。 我的期望输出是统计所有的票表,所以视图是tot_sites(来自所有票)、totdays_target(来自所有票)、todays_achieve(来自所有票)和tot_in(来自所有票)
【问题讨论】:
-
是否适用相同的条件 - p_ticket1_ticket.t_status =9 ,p_ticket1_last_row.t_req_type = '04_int_finish_ack', p_ticket1_m_site_data.m_status =1(显然对 2 和 3 稍作修改)?
-
是的,这将是相同的@P.Salmon
-
你用的是什么版本的mysql?
-
Mysql 5.5.41 @P.Salmon
标签: mysql sql database database-design count