相关疑难解决方法(0)

如何在同一个select语句中使用count和group by

我有一个具有group by的sql select查询.我想在group by语句后计算所有记录.有没有办法直接从sql?例如,拥有一个包含用户的表我想选择不同的城镇和用户总数

select town, count(*) from user
group by town
Run Code Online (Sandbox Code Playgroud)

我想要一个包含所有城镇的列,另一个列包含所有行中的用户数.

有3个城镇和58个用户的结果示例如下:

Town         Count
Copenhagen   58
NewYork      58
Athens       58
Run Code Online (Sandbox Code Playgroud)

sql group-by count

211
推荐指数
5
解决办法
65万
查看次数

获取行计数,包括sql server中的列值

我需要获取查询的行数,并在一个查询中获取查询的列.计数应该是结果列的一部分(对于所有行,它应该是相同的,因为它是总数).

例如,如果我这样做: select count(1) from table 我可以有总行数.

如果我这样做: select a,b,c from table 我将获得查询的列的值.

我需要的是以一种非常有效的方式在一个查询中获取计数和列值.

例如: select Count(1), a,b,c from table 没有分组,因为我想要总数.

我找到的唯一方法是执行临时表(使用变量),插入查询的结果,然后计数,然后返回两者的连接.但如果结果得到数千条记录,那就不会非常有效.

有任何想法吗?

sql sql-server

6
推荐指数
2
解决办法
3万
查看次数

JOOQ 选择与组不同的计数

我正在尝试通过选择计算一组返回的记录数。

这个 stackoverflow 问题很好地总结了不同的方法:

统计分组返回的记录数

我想使用以下解决方案:

SELECT DISTINCT COUNT(*) OVER () AS TotalRecords
FROM table
GROUP BY column
Run Code Online (Sandbox Code Playgroud)

如何将其转换为 JOOQ 查询?

这就是我在 JOOQ 中执行简单计数查询的方式:

Record record = jooq.select( TABLE.COLUMN.count() ).from( TABLE).fetchOne();

return record.into( Long.class );
Run Code Online (Sandbox Code Playgroud)

是否可以在 JOOQ 语法中表达“DISTINCT COUNT(*) OVER () AS TotalRecords”?

詹姆士

java sql jooq

3
推荐指数
1
解决办法
3318
查看次数

关于HAVING子句行为的神话

我正在使用SQL Server 2005,我发现该HAVING子句的奇怪行为.

根据定义,该HAVING子句应该在分组处理数据.但是,COUNTHAVING子句中使用函数实际上是在对数据进行分组之前应用于数据.

我在这里失踪了什么?

样本数据:

DECLARE @ProductTypeIDsTable TABLE
(
    A INT
)

INSERT INTO @ProductTypeIDsTable(A) VALUES
(10),(12),(12),(9),(9),(9)

DECLARE @IDsTable TABLE
(
    B INT
)

INSERT INTO @IDsTable(B) VALUES
(9),(10),(12)
Run Code Online (Sandbox Code Playgroud)

有问题的查询:

SELECT A 
    FROM @ProductTypeIDsTable pt 
    INNER JOIN @IDsTable ids ON pt.A = ids.B
    GROUP BY A
    --HAVING COUNT (A) = 1 -- gives 10 (repeated once due to the join)
    --HAVING COUNT (A) = 2 -- gives …
Run Code Online (Sandbox Code Playgroud)

t-sql group-by sql-server-2005

2
推荐指数
1
解决办法
284
查看次数

如何计算“分组依据”组中有多少行符合特定条件

我有一个表,我希望通过使用某个键对数据进行分组来从中选择数据。对于每个组,我还想计算属于该组的行有多少符合特定标准。即使该组中的 0 行符合条件,我仍然希望返回该组并显示 0 行符合条件的“计数”字段。因此,我不能简单地使用“where”子句过滤掉不需要的行,而是简单地选择组内元素数量的计数。

任何帮助将不胜感激

sql postgresql group-by count

2
推荐指数
1
解决办法
3079
查看次数

标签 统计

sql ×4

group-by ×3

count ×2

java ×1

jooq ×1

postgresql ×1

sql-server ×1

sql-server-2005 ×1

t-sql ×1