Вопросы

Ярослав Прозоров
Ошибка таблицы сравнения запросов

В лекции № 7 "Введение в Oracle SQL" в подразделе "Несамостоятельность группировки с обобщениями ROLLUP, CUBE и GROUPING SETS"  представленная таблица сравнения содержит ошибки - окончания запросов пропущены. Видимо, ошибки вызваны некорректным переносом материала лекции.

Володимир Миколайчук
помогите разобраться в вопросе с теста
Помогите разобраться поетапно с логикой запроса
-------TOOLS
NAME PRICE TYPE
drill 155 A
sawzall 192 N
mitre saw 292 M
router 86 I
RAD 145 M
jigsaw 128 I
screwdriver 77 P
------TOOL_TYPES
TYPE USAGE
A Always
I Often
M Sometimes
N Rarely
P Never

Запрос SQL:
SELECT t.type, SUM(t.price)
FROM tools t
GROUP BY t.type
HAVING SUM(t.price) >= (SELECT AVG(price)
FROM tools
WHERE type IN (SELECT type
FROM tool_types
WHERE usage = 'Often'));

И сколько строк он все таки вернет
Фаридун Мухамадиев
Фаридун Мухамадиев 6 января 2017 в 09:30

A-155
N-192
M-437
I-214
P-77
Из этих пяти значений больше или равно 4. Ответ: 4

Вадим Карташов
Вадим Карташов 11 сентября 2017 в 11:28

1. Самый внутренний подзапрос задаёт тип Often для вложенного первого порядка, 2. Подзапрос первого порядка возвращает сумму 107 по выбранному типу. 3. Основной запрос покажет всё с группировкой по сумме большей 107, то есть: А 155
N 192
M 437
I 214

Володимир Миколайчук
trunc VS round
Не совсем понятна разница в возвращаемых результатах функций trunk(date ‘2010-04-13’,’day’) и round(date ‘2010-04-13’,’day’). Или приведите более наглядней пример
Теги: oracle
Александр Булло
Александр Булло 5 августа 2013 в 15:04

TRUNC(date,'DAY') "обрезает" дату до "первого" дня в неделе.
ROUND(date,'DAY') "округляет" дату до ближайшего "первого" дня в неделе.
Т.е. если date будет меньше чем середина недели, то результаты совпадут, а вот если date будет больше чем середина недели, то ф-я ROUND выдаст следующее начало недели.

Артем Журавлев
Артем Журавлев 28 ноября 2016 в 12:29

т.е. с воскресенья по среду будут совпадать, с четверга по субботу - нет