【问题标题】:MYSQL Group by DATA NOT individuallyMYSQL Group by DATA NOT 单独
【发布时间】:2020-11-30 09:48:58
【问题描述】:

这是我的数据:

我要选择这样的数据 ▼

我尝试在分组中选择它,但不是单独显示数据。

这是我的代码

select 
date_format((select receive_contract_datetime from worklist_info where id = worklist_id), '%y.%m.%d') as receive_datetime,
(select trade_name from trade_info where id = (select worklist_trade_id from worklist_info where id = worklist_id)) as trade_name,

(select staff_name from staff_info where id = 
(select account_staff_id from account_info where id = 
(select worklist_account_id from worklist_info where id = worklist_id))) as worklist_writer,

date_format((select worklist_output_plan_date from worklist_info where id = worklist_id), '%y.%m.%d') as output_plan_date,
(select worklist_project_name from worklist_info where id = worklist_id) as prj_name,
worklist_sub_process_id,
count(worklist_sub_process_id),
sum(worklist_sub_state),
-- (sum(worklist_sub_process_id = 1)*2) as laser_count, worklist_sub_state


-- sum(worklist_sub_process_id = 1) as laser_count,
-- if(sum(worklist_sub_process_id = 1) > 0,count(IF(worklist_sub_process_id = 1, if(worklist_sub_state = 0,1,null), null)),-1) as laser_wait,
-- if(sum(worklist_sub_process_id = 1) > 0,count(IF(worklist_sub_process_id = 1, if(worklist_sub_state = 1,1,null), null)),-1) as laser_run,
-- if(sum(worklist_sub_process_id = 1) > 0,count(IF(worklist_sub_process_id = 1, if(worklist_sub_state = 2,1,null), null)),-1) as laser_end,

(select worklist_comment from worklist_info where id = worklist_id) as worklist_comment,
(select worklist_lot from worklist_info where id = worklist_id) as  lot_number
 from worklist_info_sub group by worklist_id,worklist_sub_process_id;

【问题讨论】:

标签: mysql group-by mariadb pivot pivot-table


【解决方案1】:

您似乎在旋转您的数据集。为此,您可以使用条件聚合:

select col_master_id,
    sum(col_semi_id = 1) as col_semi_1_count,
    sum(case when col_semi_id = 1 then col_state else 0 end) as col_semi_1_state,
    sum(col_semi_id = 2) as col_semi_2_count,
    sum(case when col_semi_id = 2 then col_state else 0 end) as col_semi_2_state,
    sum(col_semi_id = 3) as col_semi_3_count,
    sum(case when col_semi_id = 3 then col_state else 0 end) as col_semi_3_state,
from mytable
group by col_master_id

我看不出您的查询与您的数据有何关联。此答案基于您的示例数据和所需结果,而不是您的查询。

【讨论】:

  • 谢谢 这是我想要的代码。很抱歉不擅长如何使用本网站。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
  • 1970-01-01
相关资源
最近更新 更多