2013-06-26 2 views
0

У меня есть две таблицы, которые я объединяю, что возвращает 99 записей.SQLLite Получение количества записей из таблицы Join

Вместо того, чтобы получать 99 записей, мне нужен только счет. У меня есть два запроса, которые я пробовал после выполнения некоторых поисков, но оба по-прежнему перенастраивают 99 записей. Так что у меня что-то не так.

Таблица лотов имеет или может иметь кратные записи для одного представителя страны по коду страны (поле: dxcc). В таблице стран содержится страна с кодом страны (поле: код).

Я хотел бы указать количество уникальных округов, связанных с группой 20M. в таблице лотов.

первый я попытался

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 

Я предпочитаю второй способ, если я могу получить, чтобы работать, потому что, я должен присоединиться еще пару таблиц позже

ответ

0

Только что удалить из запроса

GROUP BY l.DXCC 
+0

Hello VitaliyG, Спасибо за ответ, я удаляю l.dxcc, и я получаю счет, но его неправильный код countrycode.c показывает дубликаты? Мне нужно, чтобы страны были уникальны? Поэтому я попробовал «SELECT code, COUNT (DISTINCT Country)», но я получаю те же результаты 662. Надеюсь, это имеет смысл. – Mike

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