2013-04-23 2 views
1

У меня есть проблема с создания SQL запроса для заявления, которое будет рассчитывать количество строк из одной таблицы:SQL запрос для последней записи в один-ко-многим

ID  Date    Status_id  Parent_id 
1  2012-1-1   2    1  
2  2012-3-21  1    2 
3  2012-3-6   1    1  
4  2012-6-11  1    3 
5  2012-1-7   2    1  
6  2012-1-5   1    3 

заявление:

SELECT COUNT(*) 
FROM person 
WHERE date BETWEEN '2012-1-1' AND '2012-1-30' AND status_id=1  

Дал мне номер 3, но в этой сумме находятся строки с одним и тем же родителем, я хочу, чтобы были подсчитаны только уникальные родители, и если есть две строки с одним и тем же родителем, только те, у которых есть дата последней даты. Может ли кто-нибудь дать мне подсказку, как я могу улучшить запрос для работы, как я описал?

+0

Что RMDS вы используете? (mysql, sql-server, oracel) – Arion

+0

Он должен дать вам номер '0' из-за даты. –

+0

Я использую базу данных PostgreSQL – Mithrand1r

ответ

2

Попробуйте этот запрос

SELECT 
    COUNT(DISTINCT Parent_id) 
FROM 
    person 
WHERE 
    date BETWEEN '2012-1-1' AND '2012-1-30' AND 
    status_id=1 

Надеется, что это помогает ....