Как подсчитать count(*) в запросе с GROUP BY ?

Pustota

Новичок
Как подсчитать count(*) в запросе с GROUP BY ?

Есть некий запрос:
PHP:
SELECT it.id, it.id_spo, it.price, hts.hotel
FROM it_spo_rows it, it_hotelStops hts, it_hotelPansions hp, it_hotels ht
WHERE (ht.id = hp.hotel) AND (hp.id = it.hotelpansion) AND (ht.id = hts.hotel)
AND it.startdate = '2006-01-10' AND it.country = '1104' GROUP BY it.id;
Так вот, в данном запросе выводится меньше строк, нежели, если запрос делать просто без GROUP BY (он отсекает дублирующие, т.к. в таблице it_hotelStops столбец hotel не уникальный и он повторяется).
Мне перед этим запросом надо подсчитать, сколько будет записей в эт ом запросе. Делаю:
PHP:
SELECT count(*)
FROM it_spo_rows it, it_hotelStops hts, it_hotelPansions hp, it_hotels ht
WHERE (ht.id = hp.hotel) AND (hp.id = it.hotelpansion) AND (ht.id = hts.hotel)
AND it.startdate = '2006-01-10' AND it.country = '1104' GROUP BY it.id;
В итоге выводит массив строк из значений '2' или '1'. То есть он не подсчитал мне кол-во записей. Если убираю GROUP BY it.id, то он нормально считатет, но вместе с дублирующими записями.
Как правильно создать запрос? Нужно именно подсчитать с GROUP BY, так как, если не учитывать это, то выведет много дублирующих.
 

alpine

Новичок
Pustota
Для подсчета кол-ва уникальных значений определенного столбца в общем случае используется запрос:
[sql]
SELECT COUNT( DISTINCT `id` ) FROM `table`
[/sql]
 
Сверху