Условная группа по и выберите запрос sql

У меня есть запрос с условной группой, мне просто интересно, есть ли способ иметь оператор выбора с этим условием мой запрос

select sum(totalamount),typetitle,
from #temp group by (case when  Type ='1' then typetitle else Type end)

с этим запросом я получаю ошибку при вводе текста, поскольку он не находится в группе по инструкции, есть ли какое-либо решение для этого?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
75
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Тр, как показано ниже

     select sum(totalamount),
    (case when  Type ='1' then typetitle else Type end)
    from #temp
     group by (case when  Type =1 then typetitle else Type end)

В группе по проекции имя столбца и группа по столбцу должны совпадать.

Только когда Type и Typetitle имеют совместимые типы данных.

Lukasz Szozda 27.10.2018 10:40

@Ironsun - это тип и название одного и того же типа данных?

Zaynul Abadin Tuhin 27.10.2018 10:50

@ZaynulAbadinTuhin нет типа int, а другой - строка, но я могу преобразовать ту же ошибку

Ironsun 27.10.2018 10:52

@Ironsun dbfiddle.uk/… вот аналогичный пример, хотя образцы данных отличаются, не могли бы вы проверить этот

Zaynul Abadin Tuhin 27.10.2018 10:53

@ZaynulAbadinTuhin работает, но я не получаю записи для других условий, например type = 2 и т. д., Как я могу включить эти записи в этот запрос?

Ironsun 27.10.2018 11:08

@Ironsun участвует в скрипке, где не работали, потому что без образца сложно сказать, почему не работает

Zaynul Abadin Tuhin 27.10.2018 11:10

Если вы не хотите повторять выражение, то apply - это один из способов:

select v.typegroup, sum(v.totalamount),
from #temp t cross apply
     (values (case when  Type ='1' then typetitle else Type end)
     ) v(typegroup)
group by v.typegroup;

Другие вопросы по теме