Re: Subquery to select max(date) value

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Subquery to select max(date) value
Дата
Msg-id fcc4bce0-6e59-d9eb-3644-548b993b84fd@aklaver.com
обсуждение исходный текст
Ответ на Re: Subquery to select max(date) value  (Rich Shepard <rshepard@appl-ecosys.com>)
Ответы Re: Subquery to select max(date) value  (Rich Shepard <rshepard@appl-ecosys.com>)
Список pgsql-general
On 2/13/19 6:28 AM, Rich Shepard wrote:
> On Tue, 12 Feb 2019, Ken Tanzer wrote:
> 
>> If that's getting you what you want, then great and more power to 
>> you.  It
>> looks like you'll only get people who have a next_contact in your target
>> window there.  You might also consider something like this...
>>
>> select
>>    p.person_id,
>>    p.lname,
>>    p.fname,
>>    p.direct_phone,
>>    o.org_name,
>>    a.next_contact
>> from
>>    people as p
>>    LEFT JOIN organizations o USING (person_id)
>>    LEFT JOIN (
>>        SELECT
>>            DISTINCT ON (person_id)
>>            person_id,
>>            next_contact
>>        FROM activities a
>>        -- WHERE ???
>>        ORDER BY person_id,next_contact DESC
>>    ) a USING (person_id)
>> ;
> 
> I modified this to restrict the time and ignore nulls by replacing the
> question marks:
> 
> WHERE a.next_contact <= 'today' and a.next_contact > '2018-12-31' and
>        a.next_contact is not null
> 
> For a reason I've not yet found, the last condition is not observed; i.e.,
> those rows with null next_contact dates appear in the results. Position in
> the sequence makes no difference. What might cause this?

The LEFT JOIN. There are rows in people for which there no records 
coming from the sub-select on activities, so the row is 'padded' with 
NULL values for the missing data.

> 
> Regards,
> 
> Rich
> 
> 
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


В списке pgsql-general по дате отправления:

Предыдущее
От: Rich Shepard
Дата:
Сообщение: Re: Subquery to select max(date) value
Следующее
От: Rich Shepard
Дата:
Сообщение: Re: Subquery to select max(date) value