Подсчет всех строк по всем столбцам, возвращая имя столбца и количество строк - PullRequest
0 голосов
/ 19 февраля 2019

Я хотел бы обобщить таблицу с большим количеством столбцов, любые предложения

Select column(names), Count(*)
from table
Group by column(names)

, в результате чего

**Cloumn** **Count**
Column 1    24
Column 2    75
column 3    35

.,,,,.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Я бы использовал APPLY:

SELECT tt.colname, COUNT(*)
FROM table t CROSS APPLY
     ( VALUES ('Column1'), ('Column2'), ('Column3'), . . 
     ) tt (colname)
GROUP BY tt.colname;

Если вы хотите считать только ненулевые значения, включите также значение столбца:

SELECT tt.colname, COUNT(tt.colval)
FROM table t CROSS APPLY
         ( VALUES ('Column1', Column1), 
                  ('Column2', Column2), 
                  ('Column3', Column3), 
                  . . .
         ) tt (colname, colval)
GROUP BY tt.colname;
0 голосов
/ 19 февраля 2019

Предполагая, что большинство людей называют Microsoft SQL Server просто SQL (неверно, но часто встречается) Отключите их

SELECT ColumnName, Count(Value)
FROM (
    SELECT ColumnName, Value
    FROM yourTable
    CROSS APPLY (
        VALUES('Column1', Column1),('Column2', Column2),('Column3', Column3)
    ) A(ColumnName, Value)
) T
GROUP BY ColumnName
...