BoBka_altRUist
Новичок
выбрать уникальное значение в порядке убывания количества его записей
как будет выглядеть такая выборка: выбрать все продукты из таблицы с уникальным брендом (поле `brand`) в порядке убывания их количества по этому бренду (limit 3)?
т.е. таблица `products`
в ней продукты:
`id` `group` `brand`
1 4 5
2 4 5
3 5 5
4 4 4
5 4 6
6 4 4
7 5 3
необходимо получить:
5
4
6
т.е. товаров с 5-м брендом больше всего в таблице, потом идет 4 и затем 6, а 3-й бренд не входит в тройку
наверно что-то примерно такое:
select distinct brand from products where (`group`=5 or `group`=5 ) and `brand` in (select count(*) as total from `products`);
p.s.: если есть возможность сделать выборку одним запросом, хотелось бы услышать стоит ли так делать или лучше двумя-тремя отдельными запросами или вообще создавать вспомогательную таблицу?
как будет выглядеть такая выборка: выбрать все продукты из таблицы с уникальным брендом (поле `brand`) в порядке убывания их количества по этому бренду (limit 3)?
т.е. таблица `products`
в ней продукты:
`id` `group` `brand`
1 4 5
2 4 5
3 5 5
4 4 4
5 4 6
6 4 4
7 5 3
необходимо получить:
5
4
6
т.е. товаров с 5-м брендом больше всего в таблице, потом идет 4 и затем 6, а 3-й бренд не входит в тройку
наверно что-то примерно такое:
select distinct brand from products where (`group`=5 or `group`=5 ) and `brand` in (select count(*) as total from `products`);
p.s.: если есть возможность сделать выборку одним запросом, хотелось бы услышать стоит ли так делать или лучше двумя-тремя отдельными запросами или вообще создавать вспомогательную таблицу?