select countとselect columnsの両方を1つのステートメントでまとめるにはどうすればよいですか?1つのSQLクエリで行数と列数を選択していますか?
1
A
答えて
1
あなたのテーブルがどのような形をしているのか見たいのであれば、このようなものが使えます。あなたが特定のクエリの列/行数を知りたいしている場合しかし、それは可能かもしれないが、私は
; WITH ROW_COUNTS AS
(
SELECT
s.[Name] as [SchemaName]
, t.[name] as [TableName]
, SUM(p.rows) as [RowCounts]
FROM
sys.schemas s
LEFT JOIN
sys.tables t
ON s.schema_id = t.schema_id
LEFT JOIN
sys.partitions p
ON t.object_id = p.object_id
LEFT JOIN
sys.allocation_units a
ON p.partition_id = a.container_id
WHERE
p.index_id in(0,1) -- 0 heap table , 1 table with clustered index
AND p.rows is not null
AND a.type = 1 -- row-data only , not LOB
GROUP BY
s.[Name]
, t.[name]
)
, COLUMN_COUNTS AS
(
SELECT
s.[Name] as [SchemaName]
, t.[name] as [TableName]
, COUNT(c.column_id) as [ColumnCounts]
FROM
sys.schemas s
INNER JOIN
sys.tables t
ON s.schema_id = t.schema_id
INNER JOIN
sys.columns c
ON C.object_id = T.object_id
GROUP BY
s.[Name]
, t.[name]
)
SELECT
CC.SchemaName
, CC.TableName
, RC.RowCounts
, CC.ColumnCounts
FROM
COLUMN_COUNTS CC
INNER JOIN
ROW_COUNTS RC
ON RC.SchemaName = CC.SchemaName
AND RC.TableName = CC.TableName
ORDER BY
1,2
結果がマスター
SchemaName TableName RowCounts ColumnCounts
dbo Hold_Cluster_Status 0 10
dbo MSreplication_options 3 6
dbo spt_fallback_db 0 8
dbo spt_fallback_dev 0 10
dbo spt_fallback_usg 0 9
dbo spt_monitor 1 11
dbo spt_values 2506 6
0
Iに対して実行どのように行うのか分かりません「は、あなたがあなたの探しているものを達成することができるはずですCOUNT()ウィンドウ集計を使用して
SELECT
a,
b,
c,
(SELECT COUNT(*) FROM yourTable) as table_count
FROM
yourTable
2
...あなたが望むものではない100%のUREをM、しかし、ここで可能な例です。
SELECT DISTINCT a, b, c, COUNT(*) OVER (PARTITION BY 1) FROM <tablename>;
別のオプションは次のようになりますが、あなたは二回表に触れている:しかし、非常に大きなテーブルに対してDISTINCTは非常にパフォーマンスになりそうではありません
SELECT a,b,c, MyCount
FROM <tablename>
CROSS JOIN
(SELECT COUNT(*) AS MyCount
FROM <tablename>
)
+1
BTW: 'COUNT(*)OVER()'と同じ効果があります。 –
関連する問題
- 1. 複数の行セットを1つのSQLクエリで選択する
- 2. Mysqli 1つのSQLクエリで値を選択して数えますか?
- 3. SQL複数の行を1つの行に選択します。
- 4. Oracle SQLクエリ1つの行に複数行、複数行を選択
- 5. Ingres SQL複数の行を1つの列に選択
- 6. SQL Server:1対複数選択クエリ
- 7. 複数の選択文を1つのクエリで複数選択した場合
- 8. SQL Serverの選択数> 1つの
- 9. 複数のクエリを1つのクエリで選択できますか?
- 10. SQL複数の列があり、1行を選択するSQLを選択して更新する
- 11. SQL副選択クエリで複数の行と列を更新する
- 12. SQLクエリで2つの定数文字列間の変数を選択
- 13. 複数の列を1つに選択
- 14. 1つのSQLクエリでCOUNT(ID)と合計を選択する
- 15. SQL Server:1つの行に複数の選択結果を挿入します。
- 16. DB2は複数の行を1つの結果として選択します
- 17. 複数のテーブルを持つクエリをSQL Serverで選択する
- 18. 1つのSQLコマンドで1つのデータベーステーブルから複数のカウントを選択
- 19. 変数に基づいて複数の行から1つを選択
- 20. SQLサーバーconcat SP複数の列を選択クエリで1つの文字列に出力する
- 21. SQL Server計算に基づいて複数の行から1つを選択します
- 22. PHP MySql 1つのPHPファイルで複数の選択クエリを選択
- 23. 1つから選択した複数のフォームを選択
- 24. 1つの列から複数のフィールドを選択して1つの行に出力する方法
- 25. MySqlは行数を余分な列として選択していますか?
- 26. 1つの列と複数の値を表示するSQLクエリ
- 27. SQL複数の空白を持つフィールド値を選択するクエリを選択しますか?
- 28. Sqlは複数の列をグループ化して選択します
- 29. MySQL 1つの行の一意性に基づいてDISTINCT複数の列を選択しますか?
- 30. SQL:1つのテーブルから複数の値を別々の列として選択する方法
は、あなたの質問に展開する必要があります。列の数はどういう意味ですか?通常のSELECT文では、あなたは明示的に列を提供します... –
@ElRonnoco私は質問を編集しました...念のためにそれを見てください。 – Satya
あなたはクエリ文を表示する必要があります。これは少なくとも私にとってはまだ分かりません。 – Yuck