Sql server 计数困难
我有一个相关列名表:enc_id guid和enc_nbr int 我有一个相遇笔记enc\U id guid表 我想生成一个enc_nbr列表,其中相关enc_id在Conference_notes中出现10次或更多次 我所尝试的:Sql server 计数困难,sql-server,Sql Server,我有一个相关列名表:enc_id guid和enc_nbr int 我有一个相遇笔记enc\U id guid表 我想生成一个enc_nbr列表,其中相关enc_id在Conference_notes中出现10次或更多次 我所尝试的: select count(*) from encounters where enc_id in (select count(enc_id) from encounter_notes having count(enc_id)>9) 这会产生以下错误: 操作
select count(*) from encounters
where enc_id in (select count(enc_id) from encounter_notes having count(enc_id)>9)
这会产生以下错误:
操作数类型冲突:uniqueidentifier与int不兼容
无法比较guid和数字 您也可以使用CTE来实现它
;WITH cte AS
(SELECT enc_id,
count(enc_id)
FROM encounter_notes
GROUP BY enc_id
HAVING count(enc_id)>9)
SELECT *
FROM encounters e
INNER JOIN cte ON e.enc_id = cte.enc_id
无法比较guid和数字 您也可以使用CTE来实现它
;WITH cte AS
(SELECT enc_id,
count(enc_id)
FROM encounter_notes
GROUP BY enc_id
HAVING count(enc_id)>9)
SELECT *
FROM encounters e
INNER JOIN cte ON e.enc_id = cte.enc_id
也许你在找这样的东西:
SELECT
enc_id
,NumberOfOccurances = COUNT(*)
FROM ENCOUNTERS
GROUP BY enc_id
HAVING COUNT(*) > 9
HAVING子句允许您在聚合函数上放置一个过滤器,而WHERE子句不能这样做。对于出现9次以上的所有enc_id值,此查询将返回每个enc_id及其出现次数
编辑:
如果您只想运行代码,可以将其更改为:
select count(*)
from encounters
where enc_id in (select enc_id from encounter_notes having count(enc_id)>9)
子查询应该返回GUIDs enc_id集,而不是不同值的数目。但这并不是很好的代码。如果可能的话,应该避免在WHERE子句中使用这样的子查询,因为子查询最终会针对外部查询中的每个记录执行。这需要很长时间 也许你在找这样的东西:
SELECT
enc_id
,NumberOfOccurances = COUNT(*)
FROM ENCOUNTERS
GROUP BY enc_id
HAVING COUNT(*) > 9
HAVING子句允许您在聚合函数上放置一个过滤器,而WHERE子句不能这样做。对于出现9次以上的所有enc_id值,此查询将返回每个enc_id及其出现次数
编辑:
如果您只想运行代码,可以将其更改为:
select count(*)
from encounters
where enc_id in (select enc_id from encounter_notes having count(enc_id)>9)
子查询应该返回GUIDs enc_id集,而不是不同值的数目。但这并不是很好的代码。如果可能的话,应该避免在WHERE子句中使用这样的子查询,因为子查询最终会针对外部查询中的每个记录执行。这需要很长时间 enc_id是一个guiduniqueidentifier,countenc_id是一个数字。不能直接比较数字和guid。尝试:从“遭遇笔记”组中按结尾选择enc_id,countenc_id>9enc_id是一个guiduniqueidentifier,countenc_id是一个数字。不能直接比较数字和guid。尝试:按countenc\u id>9的结束\u id从遭遇笔记组中选择enc\u id