задАчка...

yrtimD

Guest
задАчка...

Допустим есть таблица:

tableSrc
------------------
id| os | ext | ...
------------------
1 | mac | bin |
2 | mac | gif |
3 | pc | gif |
4 | pc | pcx |
5 | pc | txt |
6 | pc | zip |
7 | mac | gif |
8 | pc | gif |
------------------

Как получить одним mysql-запросом такую табличку:

tableTrgt
--------
pc | 4
mac | 2
--------

???

Запрос
select os, count(*) as ext from tableSrc group by os order by ext desc
не катит, так как получается совсем не то:
--------
pc | 5
mac | 3
--------

Оптимизировать tableSrc возможности нет, кол-во всех возможных значений ext и os заранее неизвестно, в таблице более 10 тыс. записей.


P.S.
Из того, что я перепобовал, ближе всех оказался запрос
select os, count(*) from tableSrc group by os,ext
но count(*) конечно же считает другое :(
 

yrtimD

Guest
задАчка решена

Предложенные запросы неверны, а вариант с count(os, distinct ext) вообще не может быть выполнен.

Всё-же, мне удалось составить запрос! :)

select os, count(distinct ext) as cnt from tableSrc group by os order by cnt desc

Это почему-то не работает на windows-версии, но зато работает на mySQL 3.23.33
 

chira

Новичок
задАчка...

Что ты вообще хочешь получить?

- максимальное количество os идущих подряд
- количество os для определенных ext

или еще что-то?
 

yrtimD

Guest
Количество уникальных ext для каждой os + список уникальных os.
 
Сверху