|
Group by + case?
|
|||
---|---|---|---|
#18+
Господа, подскажите пожалуйста - возможно вопрос легкий, но что-то не могу сообразить. Надо сделать group by по первому полю. При этом по предпоследнему суммировать - это понятно sum А вот по последнему полю нужно реализовать условие в зависимости от значения предпоследнего - выбрать строку с максимальным значением и в зависимости от этого выбрать значение последнего поля. То есть в данном случае так как 110 > 18, то соответственно 1, но могло бы быть 0, Нужный мне результат представлен ниже на скрине (сейчас выбирается как max(поле) что не есть верно). Теперь вопрос - как добиться нужного результата по возможноcсти без подзапросов? Попробовал case, но не прокатило или я не могу додуматься как его правильно тут применить Код: plsql 1.
П.С. Строк с одинаковым значение по первому полю может быть максимум 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 09:41 |
|
Group by + case?
|
|||
---|---|---|---|
#18+
арт2010 П.С. Строк с одинаковым значение по первому полю может быть максимум 2 Если не больше двух, то можно и так: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 11:11 |
|
Group by + case?
|
|||
---|---|---|---|
#18+
для общего случая (только не понятно как быть, если для одного f1 будет 2-а одинаковых f2) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2021, 18:20 |
|
|
start [/forum/topic.php?fid=53&fpage=15&tid=1994171]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 386ms |
0 / 0 |