Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать категорию, с наибольшим количеством товаров / 8 сообщений из 8, страница 1 из 1
03.11.2019, 13:45
    #39884751
sql_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
Здравствуйте уважаемые. Помогите написать подзапрос, который выводит одну строку, с наибольшим количеством товаров в наличии. Заранее благодарен.

Я написал половину ), выводит все категории со своим количеством товаров, а дальше не могу составить подзапрос, который вывел-бы нужную строку )).

Код: sql
1.
2.
3.
4.
5.
SELECT SUM ( amount ), categories.title 

FROM products LEFT JOIN categories  ON products.id = categories.product_id 

GROUP BY categories.title



Результат :
...
Рейтинг: 0 / 0
03.11.2019, 16:44
    #39884781
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
Отсортировать по убыванию посчитанного поля и взять первую запись, делов-то...
...
Рейтинг: 0 / 0
03.11.2019, 16:52
    #39884784
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
Настоящие профи не ищут простых путей.
...
Рейтинг: 0 / 0
04.11.2019, 18:59
    #39885039
sql_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
Akina, спасибо , вы так имели ввиду ?

( так работает правильно, выводит два столбца, одну строку )

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT *

FROM (
		SELECT SUM(amount) AS amount, c.title

		FROM products p INNER JOIN categories c ON p.id = c.product_id 

			GROUP BY c.title
     ) x	
	 
ORDER BY x.amount DESC LIMIT 1 




попробовал ещё одним методом

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT MAX(amount) AS amount

FROM(
		SELECT SUM(amount) AS amount, c.title

		FROM products p INNER JOIN categories c ON p.id = c.product_id 

			GROUP BY c.title
     ) x



но так выводит только столбец - amount, а - title не знаю как прицепить.

Мож Вы знаете как надо правильно ? пример приведёте ?, если не трудно
...
Рейтинг: 0 / 0
05.11.2019, 09:14
    #39885149
paver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
sql_junior,
мсье знает толк в извращениях ))
А что помешало добавить ORDER - LIMIT к изначальному запросу (в котором LEFT лишний, кстати)?
...
Рейтинг: 0 / 0
05.11.2019, 12:52
    #39885236
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
Код: sql
1.
2.
3.
4.
SELECT count(product.id) as ccc, categories.title 
FROM products INER JOIN categories  ON products.id = categories.product_id 
GROUP BY categories.title
ORDER BY ccc DESC LIMIT 1  
...
Рейтинг: 0 / 0
06.11.2019, 07:42
    #39885511
sql_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
ScareCrow, спасибо, но так запрос выводит число - 61, а надо - 23230, но если поменять

product.id на product.amount, точнее просто amount, тогда всё работает правильно.

paver, Вы правы ), LEFT JOIN - выводит неправильные данные,

он выводит число 23920 ( а надо 23230 ), причём без названия категории, т.е какую-то мусорную строку.

Спасибо всем за ответы.
...
Рейтинг: 0 / 0
06.11.2019, 07:46
    #39885514
sql_junior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать категорию, с наибольшим количеством товаров
Работающие запросы :

1.

Код: sql
1.
2.
3.
4.
5.
6.
SELECT SUM(amount) AS amount, c.title

		FROM products p INNER JOIN categories c ON p.id = c.product_id 
			GROUP BY c.title

ORDER BY amount DESC LIMIT 1



2.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT *

FROM (
		SELECT SUM(amount) AS amount, c.title
		FROM products p INNER JOIN categories c ON p.id = c.product_id 
			GROUP BY c.title
     ) x	
	 
ORDER BY x.amount DESC LIMIT 1 
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать категорию, с наибольшим количеством товаров / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]