|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
Здравствуйте уважаемые знатоки) Суть вопроса такова - по видео из youtube сгенерил себе базу: поля id(MK), make, model, price и заполнены они соответственно как: 1| Ford | focus| 14000.50 2| Audi | Q7 | 30000.45 и так 1000 строк. Такой запрос проходит SELECT make, COUNT(model), SUM(price) FROM car GROUP BY make ORDER BY COUNT; Но пытаюсь добавить типа такого: SELECT make, COUNT(model), SUM(price) FROM car WHERE SUM(price) BETWEEN '1000000' AND '5000000' GROUP BY make; то выдает ошибку, где подсвечивается SUM(price) с текстом "aggregate functions are not allowed in WHERE" Подскажите пожалуйста как правильно реализовать желаемое. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 00:24 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
DIFFERENTIAL, Where заменить на having и вставить после group by ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 00:35 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
Alexander TitkinDIFFERENTIAL, Where заменить на having и вставить после group by Спасибо! Помогло) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 00:53 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
Alexander Titkin, Другой вопрос. Вот сейчас хочу вывести список, где будут самые дешевые позиции от каждого производителя, но с колонкой model. То-есть запрос типа: SELECT make, MIN(price) FROM car GROUP BY make ORDER BY make; проходит, но список имеет только две колонки - производитель и минимальная цена в его группе. Когда пытаюсь также достать и название модели от этой цены: SELECT make, MIN(price), model FROM car GROUP BY make ORDER BY make; то ругается что "column "car.model" must appear in the GROUP clause or be used in an aggregate function. Если же добавить model в блоке GROUP BY SELECT make, MIN(price), model FROM car GROUP BY make, model ORDER BY make; то список содержит все модели конкретного производителя с минимальной ценой. А хотелось бы иметь список, где make не повторяется и рядом с ним стоит минимальная цена из этой группы и модель, к которой эта цена привязана. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 01:16 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
Вы читали, что такое группировка и как она работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 06:48 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
DIFFERENTIALAlexander Titkin, Другой вопрос. Вот сейчас хочу вывести список, где будут самые дешевые позиции от каждого производителя, но с колонкой model. То-есть запрос типа: SELECT make, MIN(price) FROM car GROUP BY make ORDER BY make; проходит, но список имеет только две колонки - производитель и минимальная цена в его группе. Когда пытаюсь также достать и название модели от этой цены: SELECT make, MIN(price), model FROM car GROUP BY make ORDER BY make; то ругается что "column "car.model" must appear in the GROUP clause or be used in an aggregate function. Если же добавить model в блоке GROUP BY SELECT make, MIN(price), model FROM car GROUP BY make, model ORDER BY make; то список содержит все модели конкретного производителя с минимальной ценой. А хотелось бы иметь список, где make не повторяется и рядом с ним стоит минимальная цена из этой группы и модель, к которой эта цена привязана. Эта задача через DISTINCT ON решается. См в документации; https://www.postgresql.org/docs/11/sql-select.html#SQL-DISTINCT ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 10:48 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
alex-ls, Честно говоря нет. пытаюсь как моно скорее постигнуть азы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 13:33 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
Maxim Boguk, Спасибо! Посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 13:33 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
DIFFERENTIALalex-ls, Честно говоря нет. пытаюсь как моно скорее постигнуть азы. чтобы постигнуть азы, нужно сначала прочитать теорию, тогда Вы бы все сами поняли ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 07:37 |
|
Изучаю основы SQL, не могу правильно составить запрос.
|
|||
---|---|---|---|
#18+
DIFFERENTIALalex-ls, Честно говоря нет. пытаюсь как моно скорее постигнуть азы. Это практично! читать документацию и понимать о чем речь - себя не уважать, гораздо быстрее вопрос-ответ(!), так "моно скорее постигнуть азы" ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 10:53 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1995185]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 176ms |
0 / 0 |