Как при группировке записей ограничить вывод

285
03 июля 2022, 17:00

Подскажите, пожалуйста, варианты, как можно ограничить вывод при группировке по количеству записей. Например, у меня есть таблица вида:

И я бы хотел при группировке с помощью Group by ограничить вывод в группу, например, 3 записями с максимальными платежами.

Подскажите, пожалуйста, лайфхаки, как можно ограничить количество строк в каждой группе. По ощущениям, это можно сделать, с помощью переменных, как в этом примере Ограничить кол-во записей в группе при группировке в MySQL Но вдруг есть альтернативные более простые решения.

Answer 1

MySQL 8.0 и позже.

SQL Fiddle

SQL

CREATE TABLE tbl (server VARCHAR(20), payment INT);
INSERT INTO tbl (server, payment)
VALUES
('alpha', 87),
('alpha', 83),
('alpha', 82),
('alpha', 36),
('beta', 89),
('beta', 74),
('beta', 42),
('beta', 34);
WITH rs (server, payment, seq) AS
(
    SELECT * 
        , ROW_NUMBER() OVER (PARTITION BY server ORDER BY payment DESC) AS seq
    FROM tbl
)
SELECT * 
FROM rs
WHERE seq <= 3;
READ ALSO
C++ побайтовое считывание

C++ побайтовое считывание

Я пытаюсь считать каждый байт из файла в буфер и вывести его:

275
Текстурные швы (искажения) при наложении на сферу OpenGL

Текстурные швы (искажения) при наложении на сферу OpenGL

При наложении текстуры на сферу получаю искажение на полюсах (рис1), швы вдоль сферы особо не видны, но если убрать GL_REPEAT в

238
Вывод списка процессов Windows 10 в компонент Qt

Вывод списка процессов Windows 10 в компонент Qt

При написании курсового проекта столкнулся с проблемой: при нажатии на компонент MenuBar у меня не происходит вывод значений на компонент TableWidget...

235