Re: Results per letter query

Поиск
Список
Период
Сортировка
От Dani Castaños
Тема Re: Results per letter query
Дата
Msg-id 467A562C.2020504@androme.es
обсуждение исходный текст
Ответ на Re: Results per letter query  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Ответы Re: Results per letter query  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Список pgsql-sql
>> Hi!
>>
>> I'm trying to build a query to get if there is an occurrence for a field 
>> for each alphabetical letter.
>> My first thought to know it was to do something like:
>>
>> SELECT COUNT(field) FROM table WHERE UPPER( field )  LIKE UPPER( 'A%' ) 
>> LIMIT 1;
>> SELECT COUNT(field) FROM table WHERE UPPER( field )  LIKE UPPER( 'B%' ) 
>> LIMIT 1;
>> SELECT COUNT(field) FROM table WHERE UPPER( field )  LIKE UPPER( 'C%' ) 
>> LIMIT 1;
>> ...
>> and so on...
>>
>> Is there any way to do it in only one query??
>>     
>
> I'm not sure if i understand you correctly, sorry, if not.
>
> test=*# select * from w;
>    t
> --------
>  test
>  foo
>  bar
>  foobar
> (4 rows)
>
> test=*# select chr(x), count(1) from generate_series(65,90) x, w where
> upper(substring (w.t from 1 for 1)) ~ chr(x) group by 1;
>  chr | count
> -----+-------
>  T   |     1
>  B   |     1
>  F   |     2
> (3 rows)
>
>
>
> Andreas
>   
It's exactly what i want. Just one more thing... What if i want also the 
ones that begin by a non-alphabetical character.
In your example:

test=*# select * from w;  t
--------testfoobarfoobar1foobar/ertw@weras


and have:
chr | count
-----+-------T   |     1B   |     1F   |     2_   |     3
(4 rows)



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

Предыдущее
От: "A. Kretschmer"
Дата:
Сообщение: Re: Results per letter query
Следующее
От: "A. Kretschmer"
Дата:
Сообщение: Re: Results per letter query