3

テーブルとテーブルに 5 つの列があります。列の値が null でない各列の行数が必要です。

column1 column2 column3 column4 column5
1        2        2       2        2
2        2        2       NULL     2     
3        NULL     2       2        NULL
NULL     NULL     2       2        NULL
NULL     NULL     2       2        NULL

3,2,5,4,2 のような出力が得られるはずです

4

5 に答える 5

5

のようなものはどうですか

SELECT 
COUNT(Column1),
COUNT(Column2),
COUNT(Column3),
COUNT(Column4),
COUNT(Column5)
FROM Table1

SQL フィドルのデモ

COUNT(式)から

SELECT ステートメントによって取得された行内の expr の非 NULL 値の数のカウントを返します。

COUNT(*) は、NULL 値が含まれているかどうかに関係なく、取得された行数のカウントを返すという点で多少異なります。

于 2013-08-08T07:03:19.090 に答える
2

関数リファレンスによると、アイテムCOUNT()以外をカウントするだけです。NULLそう、

SELECT
  COUNT(column1) AS column1,
  COUNT(column2) AS column2,
  COUNT(column3) AS column3,
  COUNT(column4) AS column4,
  COUNT(column5) AS column5
FROM yourtable;

必要な情報を返す必要があります。

于 2013-08-08T07:22:34.003 に答える
0

サブクエリを使用できます。

select column1, column2, column3, column4, column5
from ( select
  sum(column1 is not null) as column1,
  sum(column2 is not null) as column2,
  sum(column3 is not null) as column3,
  sum(column4 is not null) as column4,
  sum(column5 is not null) as column5
from mytable) x
于 2013-08-08T07:06:32.320 に答える