我试图找到表的每一列中不同值的数量。声明性地是:
for each column of table xyz
run_query("SELECT COUNT(DISTINCT column) FROM xyz")
Run Code Online (Sandbox Code Playgroud)
SELECT column_name
FROM information_schema.columns
WHERE table_name=xyz
Run Code Online (Sandbox Code Playgroud)
但是,我无法在内部合并计数查询。我尝试了各种查询,这个:
SELECT column_name, thecount
FROM information_schema.columns,
(SELECT COUNT(DISTINCT column_name) FROM myTable) AS thecount
WHERE table_name=myTable
Run Code Online (Sandbox Code Playgroud)
语法上不允许(不允许在嵌套查询中引用 column_name)。
这似乎也是错误的(超时):
SELECT column_name, count(distinct column_name)
FROM information_schema.columns, myTable
WHERE table_name=myTable
Run Code Online (Sandbox Code Playgroud)
使用一个查询获取表的每一列的不同值数量的正确方法是什么?
文章SQL 查找列中不同值的数量仅讨论固定列。
我需要根据 orderlineNo 的不同来计算有多少个 orderline。每个 OrderNo 不同,但每个订单的 OrderLineNo 相同。即订单上有 9 行,则订单行编号将从 1 - 9 变化。同样,如果另一个订单上有 3 条订单行,则订单行编号将从 1 - 3 变化
但在 orderlineno 中可能有相同的订单号 - 为此我只想计算一次
例子:
OrderNo OrderLineNo
987654 1
987654 2
987654 2
987654 3
987654 4
987654 5
987654 6
987654 7
Run Code Online (Sandbox Code Playgroud)
这里的总订单行是 7。有两个订单行为 2,我希望它们只计算一次。
使用 SQL Server 2014 可以吗?