|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
Помогите сделать SQL-запрос, который выбирает все строки и все столбцы из условной таблицы colors. Добавьте столбец, который содержит максимальную цену телефона каждого цвета. Цены телефонов соответствующего цвета выбирать из таблицы phone_price. Отсортируйте выборку по этому столбцу. Спасибо. у меня не понятно что получается:( select *, max(price) from colors c join phone_price p on c.color_id=p.color_id --where = max(price) GROUP BY c.color_name ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 21:51 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
Aforizm, посмотрите в сторону MAX(price) OVER(partition by color_id) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 22:38 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
ну, или, если хочется group Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 22:57 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
godsql, Мне как новичку тоже интересны такие задачки. Я как раз только начал использовать OVER (PARTITION..). Если первое решение - select c.*, max(p.price) over partition(c.color) from colors c join prices p on "color" , а второе - джойн на группу, как во втором сообщении, то какое из них предпочтительнее с точки зрения опытного программиста? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2020, 23:40 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
НеофитSQL, Все зависит от конкретной ситуации. В данном случае я бы поставил на group. Сначала подготавливаем таблицы,затем соединяем. В 1 вар. Идёт сначала соединение, а потом работа с результатом для вычисления максимум на. Но нужно смотреть на таблицы и какой план генерирует сервер, т.к. оптимизатор запросто может переделать запрос аналогично при выполнении Over я предложил, т.к. тс хотел простое соединение таблиц. Приеду на работу, поэксперементирую ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 08:08 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
Как и ожидалось, в данном случае Group - эффективнее Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
(затронуто строк: 5) (затронута одна строка) (затронуто строк: 5) (затронута одна строка) Время синтаксического анализа и компиляции SQL Server: время ЦП = 5 мс, истекшее время = 5 мс. Внимание! Значение NULL исключено в агрегатных или других операциях SET. (затронуто строк: 5) Таблица "Worktable". Число просмотров 3, логических чтений 29, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0. Таблица "phone_price". Число просмотров 1, логических чтений 5, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0. Таблица "colors". Число просмотров 1, логических чтений 1, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 1 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 2 мс. (затронуто строк: 5) Таблица "Worktable". Число просмотров 0, логических чтений 0, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0. Таблица "phone_price". Число просмотров 5, логических чтений 5, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0. Таблица "colors". Число просмотров 1, логических чтений 1, физических чтений 0, упреждающих чтений 0, lob логических чтений 0, lob физических чтений 0, lob упреждающих чтений 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время выполнения: 2020-10-06T10:33:58.3635984+03:00 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 10:32 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
НеофитSQL, в данной задаче, основная проблема с неизвестной структурой таблицы colors, все столбцы которой надо вывести. иначе, было бы проще и лучше так: просто перечислить их в разделе group by пример: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 11:25 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
Чует мое сердце преподаватель хотел увидеть скалярный подзапрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 16:49 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
godsql, Большое спасибо, с интересом прочитал ваш анализ. Интуитивно я "надеялся" что джойн на груп будет эффективнее, т.к. пока не научился читать планы Оракла, с которым начинаю работать, а скромный опыт еще не позволяет мне оценивать относительную стоимость разных табличных операций. Например, я с удивлением обнаружил месяц назад что Оракл оценивает поиск числа в индексированном столбце дороже, чем вызов интерпретированной пользовательской функции со сменой контекста. По крайней мере, это было мое умозаключение. Если вам интересно: Потрогать пустой result set ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 19:04 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
SERG1257 Чует мое сердце преподаватель хотел увидеть скалярный подзапрос. х.з. Вариантов слишком много: тут м.б. и cross apply и коррелированные подзапросы в разных местах и сте OVER() прикольней тем, что можно использовать аггрегирующие функции, где их использовать не дают. Хотя и дорогой ценой. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 21:29 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
НеофитSQL, мне самому было интересно. Я знал, что max() over() сработает, но не знал насколько все плохо будет. Просто так никто не делает. Посмотрел вашу тему. К сожалению, я не сталкивался с Ораклом, поэтому оценить не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 22:14 |
|
SQL-запрос, который выбирает все строки и все столбцы из условной таблицы содержит максима
|
|||
---|---|---|---|
#18+
godsql, Спасибо. вариант с посмотрите в сторону MAX(price) OVER(partition by color_id) подошёл. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2020, 22:23 |
|
|
start [/forum/topic.php?fid=46&fpage=46&tid=1685565]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 397ms |
0 / 0 |