Доброго времени суток!
Спасибо Вам за комментарий!
Я понял, что Вы имеете ввиду. Правильно: данное выражение сработает и не выдаст ошибочки при компиляции. Но не в этом суть.
А суть п.24 в том, что нельзя использовать HAVING, если не происходит агрегации (т.е. GROUP). Поскольку, вопросы на экзамене, больше приближены к решению поседневных задач, следует настраиваться именно на это.
В тестовых же условиях — ради Бога :) Можете извращаться как угодно :)
В том числе, и выводить количество строк таблицы, «если этих строк больше нуля» :)
«если этих строк больше нуля» — вот чтобы понять каких же именно строк, то их надо сначала сгруппировать по какому-либо признаку, например:
WITH tbl
AS (SELECT 'критерий1' criteria FROM DUAL
UNION ALL
SELECT 'критерий1' criteria FROM DUAL
UNION ALL
SELECT 'критерий2' criteria FROM DUAL
UNION ALL
SELECT 'критерий2' criteria FROM DUAL
UNION ALL
SELECT 'критерий2' criteria FROM DUAL
UNION ALL
SELECT 'критерий3' criteria FROM DUAL
UNION ALL
SELECT 'критерий3' criteria FROM DUAL
UNION ALL
SELECT 'критерий3' criteria FROM DUAL
UNION ALL
SELECT 'критерий3' criteria FROM DUAL)
SELECT criteria, COUNT (*)
FROM tbl
GROUP BY criteria
HAVING COUNT (*) > 1
Так что пункт гласит не синтаксическое правило. А логическое.
В любом случае, еще раз спасибо за реакцию!
Добрый день. Да ну) Рабочий значит запрос) Ну тогда покажите, пожалуйста, как Вы в ORACLE DB таким запросом извлечете данные из реального столбца? Или хотя бы, попробуйте, прокрутить вот этот запрос:
Спасибо еще раз) Я знаю что есть NULL. Скажем так: WHERE не сработает (я просто не знаю, что конкретно вернет сам WHERE — NULL или FALSE — после того как NOT IN вернет NULL или FALSE), и весь запрос ничего не вернет. Хм?
Данный экзамен можно сдавать отдельно. Он особняком. Он линейки Expert. Что касается другой профессиональной линейки, то тут уж все зависит, на что направление взяли. Скажите, конкретно, куда метите, я скажу.
2. Я не встречал никогда данную функцию. Она built-in? Может устаревшая? В референсе тоже о ней ничего не сказано. Если есть информация, то скиньте линк, пожалуйста.
3. Иcпользуйте listagg.
4. Должен с Вами согласиться (из документации):
Many (but not all) aggregate functions that take a single argument accept these clauses:
DISTINCT and UNIQUE, which are synonymous, cause an aggregate function to consider only distinct values of the argument expression. The syntax diagrams for aggregate functions in this chapter use the keyword DISTINCT for simplicity.
ALL causes an aggregate function to consider all values, including all duplicates.
Нет. Конечно можно. Просто есть два метода создания и модификации constraint-ов: inline и outline. Ну так вот, NOT NULL — может быть создани модифицирован только inline методом.
Доброго времени суток. Ну… как сказать) Тут дело в терминологии. Экзамен так требует. В рамках экзамена — если речь идет о «Hierarchical query», то наличие start with и connect обязательно. Ну а в жизни, разумеется, все по разному можно представить и интерпретировать)
Спасибо Вам за комментарий!
Я понял, что Вы имеете ввиду. Правильно: данное выражение сработает и не выдаст ошибочки при компиляции. Но не в этом суть.
А суть п.24 в том, что нельзя использовать HAVING, если не происходит агрегации (т.е. GROUP). Поскольку, вопросы на экзамене, больше приближены к решению поседневных задач, следует настраиваться именно на это.
В тестовых же условиях — ради Бога :) Можете извращаться как угодно :)
В том числе, и выводить количество строк таблицы, «если этих строк больше нуля» :)
«если этих строк больше нуля» — вот чтобы понять каких же именно строк, то их надо сначала сгруппировать по какому-либо признаку, например:
Так что пункт гласит не синтаксическое правило. А логическое.
В любом случае, еще раз спасибо за реакцию!
И только так.
2. Я не встречал никогда данную функцию. Она built-in? Может устаревшая? В референсе тоже о ней ничего не сказано. Если есть информация, то скиньте линк, пожалуйста.
3. Иcпользуйте listagg.
4. Должен с Вами согласиться (из документации):
Many (but not all) aggregate functions that take a single argument accept these clauses:
DISTINCT and UNIQUE, which are synonymous, cause an aggregate function to consider only distinct values of the argument expression. The syntax diagrams for aggregate functions in this chapter use the keyword DISTINCT for simplicity.
ALL causes an aggregate function to consider all values, including all duplicates.