два счета в одной строке

80
5

невозможно установить 2 подсчета в одной строке. мой результат из запроса выглядит следующим образом: введите описание изображения здесь

и я сделаю так, что конечный результат будет выглядеть следующим образом: введите здесь описание изображения и в конце постройте счетчик count1 для count2

моя попытка прорезать случай не была успешной: SELECT Date, Shift, описание CASE WHEN 'Defects' THEN count ELSE 0 END AS Defect_Count, описание CASE WHEN 'Total' THEN count ELSE 0 END AS Total_Count FROM ("Союз запросов")

спросил(а) 2018-02-25T00:58:00+03:00 2 года, 8 месяцев назад
1
Решение
57

Ну вот. Надеюсь это поможет. Благодарю.

MYSQL:
select
t.dates, t.shift,
sum(case when t.description = 'Defects' then t.counts else 0 end) as 'Defects',
sum(case when t.description = 'Total' then t.counts else 0 end) as 'Total'
from (
select *
from tbl ) t
group by t.dates, t.shift
order by t.dates, t.shift

ORACLE:
SELECT dates, shift, defects , total
FROM
(
SELECT *
FROM tbl
)
PIVOT
(
sum(counts)
FOR description IN ('Defects' as defects, 'Total' as total)
)
ORDER BY dates

Result:
dates shift Defects Total
2018-01-20 AM 21 56
2018-01-20 PM 19 54
2018-01-23 AM 16 58
2018-01-23 PM 20 45

ответил(а) 2018-02-25T01:45:00+03:00 2 года, 8 месяцев назад
42

много спасибо работает за первый шаг (считается в той же строке).

я попробую теперь построить процент (Дефекты для Всего). Благодарю.

для создания процента (дефектов в Total): select dates,shift,defects,total,round((100*defects/total),2) Percent2Total from(select t.dates, t.shift, sum(case when t.description = 'Defects' then t.counts else 0 end) as 'Defects', sum(case when t.description = 'total' then t.counts else 0 end) as 'Total' from ( select * from tbl ) t group by t.dates, t.shift )q order by dates,Shift. возможно ли построить это только с помощью Pivot или?

ответил(а) 2018-02-25T11:28:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема