2016-09-19 4 views
1

Я провел некоторое исследование, но все еще не мог решить мою проблему здесь.MySQL Объединить строки в столбцы

У меня есть эта таблица в следующей ссылке изображения: Table Sample

Im пытаясь написать запрос, так что я могу получить что-то вроде этой ссылке изображения: Sample I need

Я пытаюсь написать запрос, как показано ниже :

select ticket_pic, case when status = 'open' then count(tickets_id) end as open_ticket, case when status = 'close' then count(tickets_id) end as close_ticket from gt_tickets group by ticket_pic, status

Но он возвращает неправильные данные Прошу совета. Любой намек будет очень ценным.

Приветствия

+0

Чтение вашего вопроса в обзоре Triage для меня совершенно непонятно, что вы подразумеваете под «Я могу получить что-то вроде этой ссылки изображения». –

+0

@ Matthias. Приносим извинения, если это неясно. на самом деле «я могу получить что-то вроде этой ссылки изображения», обратитесь к ссылке рядом с ней. знак равно –

ответ

0
select ticket_pic, 
    SUM(CASE WHEN status = 'open' THEN 1 ELSE 0 END) as open_ticket, 
    SUM(CASE WHEN status = 'close' THEN 1 ELSE 0 END) as close_ticket  
from gt_tickets 
group by ticket_pic 

ИЛИ

select ticket_pic, 
    COUNT(CASE WHEN status = 'open' THEN 1 ELSE NULL END) as open_ticket, 
    COUNT(CASE WHEN status = 'close' THEN 1 ELSE NULL END) as close_ticket   
from gt_tickets 
group by ticket_pic 
1

я мог бы также отметить, что самый простой синтаксис MySQL является:

select ticket_pic, 
     sum(status = 'open') as open_ticket, 
     sum(status = 'close') as close_ticket 
from gt_tickets 
group by ticket_pic; 

MySQL обрабатывает логические выражения как целые числа, в числовой контекст, с «0» для false и «1» для true.

Смежные вопросы