SQL-запрос - COUNT для комбинации двух или более столбцов из одной таблицы

1 ответ

Я немного смущен тем, как вы хотите рассчитать C4count. Используя эти данные (спасибо @ iSR5):

CREATE TABLE #Table
    (
        Column1 VARCHAR(50)
    ,   Column2 VARCHAR(50)
    ,   Column3 VARCHAR(50)
    ,   Column4 INT
    ,   Column5 VARCHAR(50)
    )
INSERT INTO #Table VALUES 
('AAA','000000','BG1',12345,'North'),
('AAA','111111','BG2',23456,'South'),
('BBB','000000','BG3',12346,'EAST'),
('AAA','000000','BG2',12345,'West')

Вы можете использовать довольно простое утверждение для достижения желаемых результатов:

SELECT   Column1 AS [Name]
        ,COUNT(DISTINCT t.Column2) AS C2Count
        ,COUNT(DISTINCT t.Column3) AS C3Count
        ,COUNT(t.Column4) AS C4Count
FROM #Table t
GROUP BY t.Column1

Результаты:

Name C2Count C3Count C4Count
AAA    2      2        3     
BBB    1      1        1
[116 ] Это будет подсчитывать, сколько разных совпадений в каждом столбце для AAA и BBB для столбца 2 и столбца 3, и подсчитывать общие совпадения для столбца 4. Ваши желаемые результаты ничего не показывают для столбца 5.

Если вам нужен какой-то другой вид расчета, не могли бы вы четко описать то, что вы ищете, чтобы я мог скорректировать свой код, чтобы показать, что именно вы ищете.

0
ответ дан Nick A 19 January 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: