从SQL中的另一个表计算一个表中的条目实例

时间:2014-12-08 01:23:34

标签: sql

我有两个sql表site和sms

结构很像

SENEGAL_SITE:

siteID   Lon        Lat
1        11.232      12.32
2        12.232      12.42
3        11.232      12.62
4        11.232      11.42

ATA_SMS_Apr:

  out_going_site_id  inSite  no_sms
         4            1         65
         2            4         21
         3            4         54 

我想查询一个像这样的结果

site id     SMS_Site_count
1               5
2               3
3               1

所以基本上我想计算通过每个站点塔的短信数量

我以前用来做这个的查询是

select *  ,
count((select * 
       from ATA_SMS_Apr a 
       where s.site_id=a.out_going_site_id)) 
from SENEGAL_SITE s

这样做我收到Cannot perform an aggregate function on an expression containing an aggregate or a subquery.

错误

1 个答案:

答案 0 :(得分:1)

您需要一个相关的子查询来获取每个站点ID的ATA_SMS_Apr表的sms计数

计数从外部移动到子查询中。

select * ,
(select count(*) 
 from ATA_SMS_Apr a 
 where s.site_id=a.out_going_site_id) as SMS_Site_Count
from SENEGAL_SITE s