51

各テーブルに null 許容列をカウントする割り当てがありました。簡単:

 SELECT table_name, count(*) FROM INFORMATION_SCHEMA.COLUMNS
 WHERE is_nullable='NO'
 GROUP BY table_name;


これを変更して、「プロパティ「NOT NULL」を持つ列」をカウントする必要があります。次のコードはこれを行いますか、それとも天気の列名が null でないことを確認するだけですか?

CREATE TEMP TABLE A AS 
SELECT DISTINCT column_name, table_name AS name FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name IS NOT NULL
GROUP BY table_name, column_name;

SELECT name, count(*) FROM A
GROUP BY name;

いいえの場合...何かアドバイスはありますか?

4

3 に答える 3

57

いいえ。

このクエリ

SELECT DISTINCT column_name, table_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name IS NOT NULL

列「column_name」に値を持つすべての行を返します。

そのテーブルのすべての行は、常に列「column_name」に値を持ちます。

null許容可能な列の数とnull不可能な列の数を知る必要がありますか?

SELECT is_nullable, COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY is_nullable;

テーブル名で数えますか?使えると思います。

SELECT table_name, is_nullable, count(*)
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY table_name, is_nullable
ORDER BY table_name, is_nullable;
于 2011-03-17T21:36:42.580 に答える
1

すべての NOT NULL 列の数を取得するには:

SELECT count(*)
  FROM information_schema.columns
  WHERE  table_name  = 'table_name'
     AND is_nullable = 'NO';
于 2020-12-17T15:00:11.567 に答える