Подсчет количества строк с значение больше или равно значению из другого столбца в SQL

У меня есть таблица с двумя столбцами: пара идентификаторов и количество "отметок" для этого пара. Мне нужен результат, в котором указано количество пар с отметками x . или более для каждого из значений x . Итак, мой ввод выглядит так:

| couple_id | num_marks |
|-----------+-----------|
|         9 |         7 |
|         6 |         6 |
|         8 |         6 |
|         2 |         5 |
|         3 |         4 |
|         5 |         4 |
|         1 |         3 |
|         4 |         3 |
|        10 |         2 |
|         7 |         1 |

И я хотел бы получить результат:

| num_marks | num_couples |
|-----------+-------------|
|         7 | 1           |
|         6 | 3           |
|         5 | 4           |
|         4 | 6           |
|         3 | 8           |
|         2 | 9           |
|         1 | 10          |

Т.е.была 1 пара с 7 и более баллами, 3 пары с 6 и более баллами, 4 пары с 5 или более баллами и т. д. Мне удалось придумать запрос, чтобы вернуть количество пар с ровно n меток:

SELECT num_marks,
       count(couple_id) AS num_couples
  FROM table_name
  GROUP BY num_marks
  ORDER BY num_marks DESC;

Что дает:

| num_marks | num_couples |
|-----------+-------------|
|         7 |           1 |
|         6 |           2 |
|         5 |           1 |
|         4 |           2 |
|         3 |           2 |
|         2 |           1 |
|         1 |           1 |

Т.е. Была 1 пара с 7 баллами, 2 пары с 6 баллами, 1 с 5 и т. д. есть удобный способ эффективно суммировать значение каждой строки с указанными выше Это? Я могу сделать это на уровне приложения, но это похоже на то, что который действительно принадлежит базе данных.

7
задан haxney 15 December 2011 в 07:28
поделиться