Ответ 1
У вас почти все правильно... Вы просто добавили дополнительный столбец GROUP BY
, например:
SELECT [first_name], [last_name], COUNT(*) AS [Count]
FROM [Table]
GROUP BY [first_name], [last_name]
ORDER BY [Count] DESC;
С помощью следующего оператора sql я могу получить все уникальные значения со своими подсчетами для данного столбца:
select column, count(column) as count
from table group by column order by count desc;
Как мне получить все уникальные пары значений с помощью count. Например, если бы у меня была таблица с столбцами first_name и last_name, я мог бы найти результаты примерно так:
first_name | last_name | count
Джон | Смит | 42
Джон | Джонсон | 39
Дэвид | Смит | 37
и т.д...
Могу ли я сделать это в базовом SQL? Я обычно использую MySQL, но я предполагаю, что любое решение, которое вы придумали, должно быть переводимым на любой db.
У вас почти все правильно... Вы просто добавили дополнительный столбец GROUP BY
, например:
SELECT [first_name], [last_name], COUNT(*) AS [Count]
FROM [Table]
GROUP BY [first_name], [last_name]
ORDER BY [Count] DESC;
Используйте несколько столбцов в разделе group by.
select first_name, last_name, count(*) as count from table group by first_name, last_name
Если вам просто нужно подсчитать количество различных пар, вы можете сделать это более просто.
A GROUP BY
не требуется.
SELECT COUNT(DISTINCT first_name, last_name) AS count_names FROM Table
SELECT first_name, last_name, COUNT(distinct last_name) AS c
FROM ttable
GROUP BY first_name, last_name
HAVING c > 999
ORDER BY c DESC
Добавление отличия сделает это в MYSQL. Благодаря