как мне сгруппировать, отсортировать и вынуть первый N в MySQL? - PullRequest
2 голосов
/ 31 мая 2019

Я могу получить отсортированные данные в группе и, наконец, вынуть первое N в DolphinDB.

Но как мне сгруппировать, отсортировать и извлечь первые N в mysql?

Сначала спасибо.

Код DolphinDB выглядит следующим образом:

sym = `C`MS`MS`MS`IBM`IBM`C`C`C$symbol;
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29;
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800;
timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12];
t1 = table(timestamp, sym, qty, price);
select top 2 * from t1 context by sym csort timestamp;

timestamp sym qty  price 
--------- --- ---- ------
09:34:07  C   2200 49.6  
09:34:16  C   1300 50.76 
09:32:47  IBM 6800 174.97
09:35:26  IBM 5400 175.23
09:36:42  MS  1900 29.46 
09:36:51  MS  2100 29.52

Ответы [ 2 ]

2 голосов
/ 31 мая 2019

Если у вас есть MySQLv8.0, который поддерживает ROW_NUMBER(), вы можете использовать что-то вроде этого:

 SELECT `timestamp`,sym,qty,price
  FROM
      (
      SELECT 
      `timestamp`,sym,qty,price,ROW_NUMBER() OVER (PARTITION BY sym ORDER BY timestamp ASC) AS ranking
      FROM `table`
      ) t
WHERE ranking<3   

https://www.db -fiddle.com / ж / 8fY2DJmCCv7kCnEAPBAU3B / 0

0 голосов
/ 31 мая 2019
SELECT sym, sum(qty) FROM table_name GROUP BY sym ORDER BY qty LIMIT 5;

Где GROUP BY столбец - группы строк ORDER BY столбец - строки заказов LIMIT номер - выбирает первое число строк

...