Выберите верхние 25% строк в таблице с неизвестным количеством строк - PullRequest
0 голосов
/ 05 февраля 2020

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

Пример: если в моей таблице 100 строк, я должен получить 25 лучших строк в результате.

Попробовал следующий код: ВЫБЕРИТЕ ТОП 25 ПРОЦЕНТОВ ОТ; Кажется, это не сработает в MySQL. Ищу помощи.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

SELECT TOP 25 PERCENT * FROM <*table_name*>;

Это сработает.

Я думаю, вы пропустили установку *.

0 голосов
/ 05 февраля 2020

Если вы используете MySQL 8+, то ROW_NUMBER предлагает одно решение:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (ORDER BY some_col) rn, COUNT(*) OVER () cnt
    FROM yourTable
)

SELECT *
FROM cte
WHERE 1.0 * rn / cnt <= 0.25;
...