Как ранжировать, считая данные в несколько строк в столбце с определенными условиями в нем MySQL - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть таблица, подобная приведенной ниже

edit 1 идентификатор столбца - это первичный ключ

id  ref_id  count_value  
10     34       5
11     34       2
12     36       3
13     30       1
14     25       20
15     34       15
15     36       10

, который я хочу выровнять и извлечь данные в таким образом, когда

значение в поле count_value будет складываться для каждого соответствующего ref_id

, поэтому здесь в примере

ref_id 34 есть три записи и всего count_value из 22 * ​​1018 *

ref_id 36 имеют две записи, и всего count_value из 13

ref_id 25 имеют одну запись и всего count_value из 20

так что я ожидаю, что будет таким образом

ref_id
 34
 25
 36
 30

Я пытался использовать group by, но это не решит это, я думаю, я хочу сложить текущее значение внутри ячейки, а затем ранжировать ее в соответствии с окончательным числом

относительно условной части в вопросе, содержащей timestamp column, и потребуется только те данные, которые созданы после определенной даты / времени

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете group by ref_id, а затем упорядочить записи по убыванию sum() из count_value:

select ref_id
from mytable
group by ref_id
order by sum(count_value) desc

. Вы можете добавить предложение where в запрос для реализации фильтра на столбец метки времени (который вы не указали в данных примера): он идет между предложением from и предложением group by.

Демонстрация на DB Fiddle :

| ref_id |
| -----: |
|     34 |
|     25 |
|     36 |
|     30 |
...