Как найти наибольшую разницу в столбце SQL? - PullRequest
0 голосов
/ 13 мая 2018

У меня есть таблица со следующей информацией:

Таблица: бар

minute | beer
1      | 48
2      | 24
3      | 92
4      | 17
5      | 38
6      | 64

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

Я имел в виду что-то:

Select minute, count(beer) as spike
from bar
where ???

Ответы [ 4 ]

0 голосов
/ 13 мая 2018

Поскольку порядок не имеет значения, вы можете сделать это с помощью самостоятельного соединения:

SELECT a.minute AS from_minute, b.minute AS to_minute, a.beer, b.beer
FROM bar a
CROSS JOIN bar b
ORDER BY a.beer-b.beer DESC
LIMIT 1

Это приведет к ряду, описывающему, с какой минуты до какой минуты у вас будет наибольшая разница, наряду ссоответствующие значения beer.

0 голосов
/ 13 мая 2018

Вы можете использовать функции mysql MAX() и MIN(), чтобы получить самые высокие и самые низкие значения.

SELECT MIN(beer) AS lowestBeer, MAX(beer) as highestBeer
FROM bar; 
0 голосов
/ 13 мая 2018

Самый простой способ:

select max(beer) - min(beer)
from bar;
0 голосов
/ 13 мая 2018

Вам нужно вложенное агрегирование:

select max(spike) - min(spike)
from
 (  -- count per minute
    Select minute, count(beer) as spike
    from bar
    group by minute
 ) as dt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...