小编Eye*_*arp的帖子

包含 where 子句和总计表值出现次数的 SQL 返回表

我很难弄清楚如何实现这一目标。我知道如何用 C# 实现它,但不知道如何用 SQL 实现。

假设我有下表:

ID 姓名 路由ID
1 鲍勃 1001
2 鲍勃 1002
3 安娜 1001
4 吉姆 1001
5 伊莱 1001

我想返回整个表,并用一个额外的列显示routeID按名称出现的总次数,所以where name='Bob'看起来像:

ID 姓名 路由ID 全部的
1 鲍勃 1001 4
2 鲍勃 1002 1

但是,如果我写类似的东西

declare @ct as nvarchar(5)
set @ct = (SELECT COUNT(RouteId) from <table>)

select *, @ct
from <table>
where name = 'Bob'
Run Code Online (Sandbox Code Playgroud)

我得到所有路线 ID 的总数,而不仅仅是行中显示的路线 ID。

我尝试查看计算列,但据我所知它不支持这种类型的查询。

有人能指出我正确的方向吗?

sql-server count where

5
推荐指数
2
解决办法
800
查看次数

SQL COUNT LEFT JOIN 上列值的出现次数

我在这里似乎有类似的问题,但似乎没有一个答案符合我正在寻找的-

假设我有一张这样的桌子:

分配给 部门ID 类型
玛丽 5001 初级
鲍勃 5002 中间
鲍勃 5003 初级
吉尔 5004 高的
鲍勃 5005 高的
鲍勃 5006 高的

另一个像这样:

用户 电话 地址
玛丽 111-222-3333 南巷111号
鲍勃 222-111-3333 北大道222号
吉尔 333-222-1111 555公路

我想在第一个表上输出带有左连接的第二个表,其中包含每个指定用户的“类型”总数(基本、中、高),因此它需要类似的内容:

用户 电话 小学总计 总中 总高
玛丽 111-222-3333 1 0 0
鲍勃 222-111-3333 1 1 2
吉尔 333-222-1111 0 0 1

我已经尝试过--Count(case when <table>.[type] = 'Elementary' then 1 else 0 end) AS ElementaryCount,,但这只是让我获得整个表,而不是左连接的用户。

有人知道我该怎么做吗?

join sql-server t-sql count

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

标签 统计

count ×2

sql-server ×2

join ×1

t-sql ×1

where ×1