|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
Я только второй день знаком с SQL, жена попросила срочно ей помочь, в пятницу экзамен... Как обойти запрет вложенных агрегатных запросов? Нужно найти максимум от суммы столбца group by, что-то вроде SELECT something1, MAX(SUM(something2)) FROM .... GROUP BY something1 Так нельзя, а как сделать правильно? Выручите! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 01:39 |
|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
Чего то я не совсем понял чего надо. Пусть есть таблица: A B ---------------- q 1 q 2 w 5 t 7 w 3 q 7 Select A, sum(A) from Table group by A даст q 10 w 8 t 7 А Max от кого брать то надо - от этих значений что ли? И что требуется в столбце A для этого значения? Если рез. должен быть q 10, то можно так: Select top 1 A,sum(B) from Table group by A order by sum(B) desc ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 08:11 |
|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
Спасибо, нужно было именно это! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 08:26 |
|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
А если максимуму в нескольких строчках (заранее неизвестно в скольких), и их надо показать? Например, после суммирования и group by A B --- q 10 s 10 f 7 g 5 А результатом надо q 10 s 10 Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 09:10 |
|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
Можно в два этапа, с использованием временной таблицы #t: select a, sum(b) as bSum into #t from t group by a select a, bSum from #t where bSum=(select max(bSum) from #t) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 11:17 |
|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
По-моему можно и без временной таблицы: Select A,sum(B) from Table group by A having sum(B)=(Select top 1 sum(B) from Table group by A order by sum(B) desc) Но со временными таблицами всё-же лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 11:45 |
|
Ребята, подскажите по SQL
|
|||
---|---|---|---|
#18+
Решил, вот вмешаться. Еще как разновидность подхода maximF`а , только без временной таблицы. В данном примере особой выгоды не получится, однако красива сама идея выборки из результируемого множества как из таблицы: select a, bSum from (select t.a, sum(t.b) as bSum from Tab1 t group by a) as t1 where bSum=(select max(t1.bSum) from t1) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2000, 14:59 |
|
|
start [/forum/topic.php?fid=46&msg=32001169&tid=1827546]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 394ms |
0 / 0 |