Как задать запрос SQL COUNT - отличается, но значение уникально - PullRequest
0 голосов
/ 25 января 2019

Как написать правильный запрос к языку SQL на примере?

Прежде чем спрашивать SQL:

|     User       |    City    |
|----------------|------------|
| John Travolta  | New York   |
| Anonymous      | New Jersey |
| John Travolta  | New York   |
| Anonymous      | New Jersey |
| John Travolta  | New York   |
| Bill Gates     | New Haven  |

После запроса SQL вернет:

Всего записей:

New York - 1
New Jersey - 2
New Haven - 1

Примечание:

DISTINCT - больше значений Джон Траволта будет считать только 1 DISTINCT - одно значение Anonymous будет считать 1 DISTINCT - три значения Anonymous будут считать 3 DISTINCT - пять значений Джон Траволта будет считать только 1


Пожалуйста, посмотрите ttps: //www.w3schools.com/sql/trysql.asp? Filename = trysql_select_no_distinct

Тогда:

SELECT country, count(DISTINCT city) as total_records FROM Customers WHERE country="Spain" GROUP BY country

Я хочу после запроса SQL:

Страна total_records Испания 5

Потому что значение в столбце только Мадрид является уникальным.

1 Ответ

0 голосов
/ 25 января 2019

Попробуйте это:

SELECT City, COUNT(DISTINCT User2)
FROM 
    (SELECT City, User
    , CASE WHEN User= 'Anonymous' THEN CAST(ROW_NUMBER() OVER (ORDER BY City) AS VARCHAR(10)) ELSE User END AS User2 
    FROM MyTable) a --Replace MyTable with the name of your table
GROUP BY City

Каждому элементу «Аноним» присваивается уникальное числовое значение, а затем подсчитывается различное количество этих или неанонимных имен.

...