|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Всем привет! ID - номер класса (1-11), NAME - название класса (класс первый - класс одиннадцатый, т.е. строка) и COUNT - сколько учеников в классе. Допустим так. select ID, NAME, COUNT(*) from class c group by c.id, c.name Он выводит 1 первый класс 40 2 второй класс .... А мне нужно в три строки Начальная школа Средняя школа Младшая школа где sum по 1-4, 5-9 и 10-11 соответственно. То есть тут нужен case when.... having...? Как правильнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 07:32 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
номер класса, делённый на пять, даёт группу : 0 - начальные, 1 - младшие и 2 - средние. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 08:21 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Rphoenix, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 09:44 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
KreatorXXI, большое спасибо! тоже самое писал, только в конце "group by a.priz_spr" тогда он просто на каждый класс пишет, а при "group by 1" осталось три строки как надо. Странно, вроде значения не должно иметь? _____________ а нет, все так же select case C.NUBMER when 1 then 'Начальная школа' when 2 then 'Начальная школа' when 5 then 'Средняя школа' end, sum(POSTUPILO_UCH) as VSEGO from CLASS C where (C.DATA between :DATA_S and :DATA_PO) group by 1 Сейчас идет <null> 30 Начальная школа 20 Средняя школа 35 Т.е. первые две строки так и не объединяет :( Мб Group by case как-то использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 10:08 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Rphoenix, можно "select from select" для лучшего понимания, но в данном случае "group by 1" работает как надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 10:12 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Rphoenix ....Странно, вроде значения не должно иметь? Расшифруй свои мысли ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 10:17 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
m7m, я выше написал, что он не соединяет строки ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 10:41 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Rphoenix, всё же хорошо. Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 12:07 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Rphoenixон не соединяет строки А почему он должен их соединять, если ты явно сказал ему группировать не по ним? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 12:16 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
Просто у него case кривой. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 12:40 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
KreatorXXI Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 12:43 |
|
Объедение в группировке
|
|||
---|---|---|---|
#18+
hvlad, да нет. ТС должен же что-то сам сделать. Хоть оптимизировать. Вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 13:17 |
|
|
start [/forum/topic.php?fid=40&msg=39942216&tid=1560401]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
122ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 237ms |
0 / 0 |