-
Notifications
You must be signed in to change notification settings - Fork 1
SQL
opportunity356 edited this page Apr 8, 2016
·
4 revisions
TODO: ответить на следующие вопросы...
- Какой JOIN выполняется, если не указывать явно JOIN ? SELECT Laptop.model, Product.model FROM Laptop, Product;
- UNION объединит результаты и оставит только уникальные строки, а UNION ALL просто вернет объединение.
- Если в результате выполнения запроса не получено ни одной строки (или ни одной строки для данной группы), то исходные данные для вычисления любой из агрегатных функций отсутствуют. В этом случае результатом выполнения функций COUNT будет нуль, а результатом всех других функций — NULL.
Например,
sql SELECT 1 a WHERE EXISTS(SELECT MAX(price) FROM PC WHERE price<0)
вернёт 1 - Внутри аггрегатных функций можно использовать DISTINCT, например Count(distinct p.type)
- MIN и MAX сортируют числовые данные, как числа, а строки, как строки. Поэтому следующую задачу
"Найти производителей, которые выпускают более одной модели, при этом все выпускаемые производителем модели являются продуктами одного типа. Вывести: maker, type" можно решить вот так:sql Select maker,min(type) from Product group by maker having count(1)> 1 and min(type)=max(type)