Re: Simple way to get missing number

Поиск
Список
Период
Сортировка
От Emi Lu
Тема Re: Simple way to get missing number
Дата
Msg-id 4F96EC90.6070600@encs.concordia.ca
обсуждение исходный текст
Ответ на Re: Simple way to get missing number  (Steve Crawford <scrawford@pinpointresearch.com>)
Ответы Re: Simple way to get missing number  (Steve Crawford <scrawford@pinpointresearch.com>)
Список pgsql-sql
I got it and thank you very much for everyone's help!!

It seems that "left join where is null" is faster comparing with
"except". And my final query is:

select num as missing
from   generate_series(5000, #{max_id}) t(num)
left join t1  on (t.num = t1.id)
where t1.id is null;

Emi

On 04/24/2012 11:42 AM, Steve Crawford wrote:
> On 04/24/2012 07:15 AM, Emi Lu wrote:
>> Good morning,
>>
>> May I know is there a simple sql command which could return missing
>> numbers please?
>>
>> For example,
>>
>> t1(id integer)
>>
>> values= 1, 2, 3 .... 5000000
>>
>> select miss_num(id)
>> from t1 ;
>>
>>
>> Will return:
>> ===============
>> 37, 800, 8001
>>
>> T
>
> select generate_series(1,5000000) except select id from t1;
>
> Example
>
> select anumber from fooo;
> anumber
> ---------
> 1
> 3
> 5
> 7
> 9
> 11
> 13
> 15
>
> select generate_series(1,15) except select anumber from fooo order by 1;
> generate_series
> -----------------
> 2
> 4
> 6
> 8
> 10
> 12
> 14
>
> Cheers,
> Steve


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

Предыдущее
От: Andreas Kretschmer
Дата:
Сообщение: Re: Simple way to get missing number
Следующее
От: Andreas
Дата:
Сообщение: How to group by similarity?