Функция группы ни одной группы SQL

Следуя за комментарием dansay, следующее, кажется, работает отлично:

$('#thing') .animate({dummy:1}, 2000) .animate({ etc ... });

36
задан GammaOmega 8 June 2016 в 02:22
поделиться

3 ответа

Проще говоря, проблема заключается в том, что СУММ (ВРЕМЯ) для конкретного SSN в вашем запросе - это одно значение, поэтому он возражает против MAX, поскольку это не имеет смысла (максимум одно значение бессмысленно).

Не знаю, какой сервер базы данных SQL вы используете, но подозреваю, что вам нужен запрос, более похожий на этот (Написанный с фоном MSSQL - может потребоваться некоторый перевод на сервер sql, который вы используете):

SELECT TOP 1 SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
ORDER BY 2 DESC

Это даст вам SSN с наибольшим общим временем и общим временем для него.

Изменить - если у вас есть несколько номеров с одинаковым временем и вы хотите использовать их все, вы должны использовать:

SELECT
SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
HAVING SUM(TIME)=(SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN))
35
ответ дан 27 November 2019 в 06:08
поделиться

Maybe you find this simpler

select * from (
    select ssn, sum(time) from downloads
    group by ssn
    order by sum(time) desc
) where rownum <= 10 --top 10 downloaders

Regards
K

2
ответ дан 27 November 2019 в 06:08
поделиться

Если вам нужно количество загрузок для каждого клиента, используйте:

select ssn
     , sum(time)
  from downloads
 group by ssn

Если вам нужна только одна запись - для клиента с наибольшим количеством загрузок - используйте:

select *
  from (
        select ssn
             , sum(time)
          from downloads
         group by ssn
         order by sum(time) desc
       )
 where rownum = 1

Однако, если если вы хотите видеть всех клиентов с одинаковым количеством загрузок, занимающих самую высокую позицию, используйте:

select *
  from (
        select ssn
             , sum(time)
             , dense_rank() over (order by sum(time) desc) r
          from downloads
         group by ssn
       )
 where r = 1
10
ответ дан 27 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: