相关疑难解决方法(0)

Postgres:查找每列的不同值的数量

我试图找到表的每一列中不同值的数量。声明性地是:

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 查找列中不同值的数量仅讨论固定列。

postgresql dynamic-sql

5
推荐指数
1
解决办法
5483
查看次数

根据来自另一列的不同值对值进行计数

我需要根据 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 可以吗?

sql sql-server sql-server-2014

5
推荐指数
1
解决办法
8208
查看次数