получить количество по разным критериям

Edson

Новичок
получить количество по разным критериям

Помогите составить запрос.

Задача такая

Пусть есть такое

id model
1 344
2 341
3 234
4 231
5 189
6 189

Как получить одним запросом количество где model 2%, или 3%, или 1%.
 

Never

Новичок
select count(id) from ..._table where model like '1%' or model like '2%' or model like '3%';
 

Edson

Новичок
Автор оригинала: Never
select count(id) from ..._table where model like '1%' or model like '2%' or model like '3%';
не то. мне нужно что было отдельно указано количество по каждому критерию. отдельно для 2%,1%,3%
 

Edson

Новичок
Автор оригинала: Serg Karpenko
может что-то вроде
select left(model,1), count(id) from table
group by left(model,1)
можно ли как-то сделать такой запрос, чтобы например передать ,например, массив значений в результате даже если нет такого критерия в базе выдало 0 в count.

Пример

id model
1 454
2 476
3 557
4 678
5 890
6 456
7 467
8 467

Я передаю какой-нибудь массив:

[0] => "4"
[1] => "5"
[2] => "6"
[3] => "7"

В результате запрос должен показать мне количество, где model начинается с 4,5,6,7.

Можно что-то вроде такого придумать?
 

Serg Karpenko

Новичок
create table model_type (
id varchar(1)
)

insert into model_type (id) values ('4');
insert into model_type (id) values ('5');
insert into model_type (id) values ('6');
insert into model_type (id) values ('7');

select m.id, count(t.id)
from model_type m
left join table t on (m.id = left(t.model,1))
group by m.id
 

Wicked

Новичок
для эксперимента можно попробовать так: select sum(model like '1%'), sum(model like '2%'), ...
 
Сверху