SQLite从Join表获取记录计数

时间:2013-06-26 23:18:06

标签: sql sqlite left-join

我有两个表,我加入了一起,返回99条记录。

我不需要获得99条记录,而只需要计数。在进行一些搜索之后,我有两个查询,但两者仍在重新调整99条记录。所以我有些不对劲。

通过国家/地区代码(字段:dxcc),一个国家代表将拥有或可能拥有多个记录表。 国家/地区表格中包含国家/地区的相关国家/地区代码(字段:代码)。

我想要的是与20M乐队相关的独特县的数量。在lotw表中。

首先我尝试了

SELECT COUNT(cc.code)
FROM lotw l
JOIN CountryCode AS cc on cc.code = l.dxcc 
WHERE l.DXCC > '' AND l.BAND IN ('20M')
GROUP BY l.DXCC

然后我试了

SELECT COUNT(cc.total)
FROM lotw l
JOIN (SELECT code,COUNT(Country) As total FROM CountryCode GROUP BY code) AS cc on cc.code = l.dxcc 
WHERE l.DXCC > '' AND l.BAND IN ('20M')
GROUP BY l.DXCC

我更喜欢第二种方法,如果我可以使用它,因为,我必须稍后再加入几张表

2 个答案:

答案 0 :(得分:0)

只需从查询中删除

GROUP BY l.DXCC

答案 1 :(得分:0)

好的我需要撤消我的查询,以便这样做。

SELECT COUNT(l.total)
FROM CountryCode cc
JOIN (SELECT dxcc, COUNT(*) As total FROM lotw  WHERE DXCC > '' AND BAND IN ('20M') GROUP BY dxcc) AS l on l.dxcc = cc.code