Sql 子查询中varchar数据类型的聚合子句

Sql 子查询中varchar数据类型的聚合子句,sql,Sql,我想用一个子查询执行以下操作,尽管我可以用另一种方式执行。我正在查询一个大的连接表,在该查询中,我想得到所有出现次数超过X的县名称的计数 select v.id, k.countyName from v inner join k on v.countyID=k.countyID inner join icd_jxn on v.id = icd_jxn.id where k.countyName in (select count(k.countyName) from k having count(

我想用一个子查询执行以下操作,尽管我可以用另一种方式执行。我正在查询一个大的连接表,在该查询中,我想得到所有出现次数超过X的县名称的计数

select v.id, k.countyName
from v inner join k on v.countyID=k.countyID inner join
icd_jxn on v.id = icd_jxn.id
where k.countyName in
(select count(k.countyName) from k
having count(k.countyName) > 10)
给出的错误是将varchar值X转换为int时,
转换失败。我不想做任何转换,我只想知道县名称出现在表上的次数


您的内部查询只返回一个计数。您的查询需要如下所示:

select v.id, k.countyName 
from v inner join k on v.countyID=k.countyID inner join 
icd_jxn on v.id = icd_jxn.id 
where k.countyName in 
(select k.countyName from k 
group by k.countyName
having count(k.countyName) > 10) 

您的内部查询只返回一个计数。您的查询需要如下所示:

select v.id, k.countyName 
from v inner join k on v.countyID=k.countyID inner join 
icd_jxn on v.id = icd_jxn.id 
where k.countyName in 
(select k.countyName from k 
group by k.countyName
having count(k.countyName) > 10) 

你可以试试下面的方法

select v.id, k.countyName
from v inner join k on v.countyID=k.countyID 
       inner join icd_jxn on v.id = icd_jxn.id
where k.countyName in
(
    select k.countyName from k
    group by k.countyName
    having count(k.countyName) > 10
)

问题是您选择了
计数
,并在in子查询中选中了
varchar
类型。因此,您应该选择countyName,您可以尝试以下方法

select v.id, k.countyName
from v inner join k on v.countyID=k.countyID 
       inner join icd_jxn on v.id = icd_jxn.id
where k.countyName in
(
    select k.countyName from k
    group by k.countyName
    having count(k.countyName) > 10
)

问题是您选择了
计数
,并在in子查询中选中了
varchar
类型。因此,您应该选择要查看国家名称在计数中的位置的
countyName
(从而将varchar与整数进行比较)


您试图查看国家名称在计数中的位置(从而将varchar与整数进行比较)


在查询中,您正在将
k.CountryName
varchar类型与导致错误的
Count
int类型进行比较。 试试这个


在查询中,您正在将
k.CountryName
varchar类型与导致错误的
Count
int类型进行比较。 试试这个


所有这些名为ID的字段都是int,countyName是varchart,但它并没有达到我想要的效果。表k没有任何重复的县名称,外部查询有。如果大于0,则得到整个表(800k行)。但当我大于1时,返回0行。即使有100到数千次重复。然后,您需要在内部查询中进行联接,以查找数据中每个县的总计数。所有这些名为ID的字段都是int,countyName是varchart。这次运行,但它没有达到我想要的效果。表k没有任何重复的县名称,外部查询有。如果大于0,则得到整个表(800k行)。但当我大于1时,返回0行。即使有100到数千次重复。然后您需要在内部查询中进行联接,以查找数据中每个县的总计数。这不起作用,您的
in
无法链接到返回的2列。这不起作用,您的
in
无法链接到返回的2列。这不起作用,您在
中的
无法链接到要返回的两列。这不起作用,您在
中的
无法链接到要返回的两列。