У меня есть запрос SQL, который приводит в качествеКак использовать группу, с неопределенными значениями
personCount toatlMinute Meal QPWaiting NoOfCR CRNo
0 2 NULL NULL NULL NULL
1 7 NULL NULL NULL NULL
2 8 NULL NULL NULL NULL
3 16 NULL NULL NULL NULL
4 128 NULL NULL NULL NULL
0 NULL NULL 14 2 5555, 6666
3 NULL NULL NULL NULL NULL
4 NULL NULL NULL NULL NULL
2 NULL NULL 14 2 5555, 6666
3 NULL NULL 14 2 5555, 6666
4 NULL NULL 14 2 5555, 6666
0 NULL 2 NULL NULL NULL
Теперь я хочу использовать группу по 1-й колонке (personcount
) и хотите, чтобы подвести 2-й и 3-й столбец , но Дон» t хочу суммировать 4-й, 5-й и 6-й столбцы. Но вывод должен показывать все данные в одном для уникального количества человек.
SELECT
personCount,
SUM(toatlMinute) toatlMinute,
SUM(Meal) Meal,
QPWaiting,
NoOfNCR AS NoOfCR,
NCRNo AS CRNo
FROM
@OperatorData
GROUP BY
personCount, QPWaiting, NoOfNCR, NCRNo
и дает выход в
personCount toatlMinute Meal QPWaiting NoOfCR CRNo
0 2 2 NULL NULL NULL
0 NULL NULL 14 2 5555, 6666
1 7 NULL NULL NULL NULL
2 8 NULL NULL NULL NULL
2 NULL NULL 14 2 5555, 6666
3 16 NULL NULL NULL NULL
3 NULL NULL 14 2 5555, 6666
4 128 NULL NULL NULL NULL
4 NULL NULL 14 2 5555, 6666
А вы можете увидеть два ряда для подсчета 0 людей. Однако я хочу только одну строку.
Как получить этот выход? Пожалуйста, посоветуйте
NULL не равен с любым значением. Таким образом, нет смысла «рушиться» с любым значением. * Однако *, если вы удалите эти столбцы из группы и используйте соответствующую функцию * aggregate *, тогда вы должны достичь желаемых результатов. 'MAX ({NULL, 5555}) -> 5555'. – user2864740
Почему вы хотите один ряд для человека 0, но не для 2 или 3? –