кодесурса
«SQL

SQL MAX () на значение даты

script1adsense2code
script1adsense3code

Функция MAX () на дату

В этой части вы увидите использование функции SQL MAX () для типа даты столбца таблицы.

Пример:

Пример таблицы: заказы


Чтобы получить максимальное значение ord_date из таблицы orders, можно использовать следующий оператор SQL:

SELECT MAX (ord_date) AS "Max Date" 
FROM orders;

Выход:

 Макс Дата
---------
20 октября-08

SQL MAX () для значения даты с помощью где

Чтобы получить данные «ord_num», «ord_amount», «ord_date», «agent_code» из таблицы «orders» при следующих условиях:

1. «ord_date» равно максимальному «ord_date»,

2. максимальное значение 'ord_date' для тех агентов, чей код_агента 'A002',

можно использовать следующий оператор SQL:

SELECT ord_num, ord_amount, ord_date, agent_code
FROM orders
WHERE ord_date=(
SELECT MAX(ord_date) FROM orders WHERE agent_code='A002');

Выход:

 ORD_NUM ORD_AMOUNT ORD_DATE AGENT_CODE
--------- ---------- --------- ----------
   200122 2500 16-сен-08 A004
   200119 4000 16-SEP-08 A010
   200123 500 16-сен-08 A002
   200135 2000 16-SEP-08 A010

SQL MAX () на дату с группировкой по

Чтобы получить данные «agent_code» и максимального значения «ord_date» с заданным пользователем псевдонимом столбца «Max Date» для каждого агента из таблицы заказов со следующим условием:

1. 'agent_code' должен входить в группу

можно использовать следующий оператор SQL:

SELECT agent_code, MAX(ord_date) AS "Max Date"
FROM orders 
GROUP BY agent_code;

Выход:

 AGENT_CODE Макс. Дата
---------- ---------
A004 23-SEP-08
A002 16-SEP-08
A007 20 июня 2008 года
A009 13-июл-08
A011 30-июл-08
A012 26 августа 2008 года
A010 16-SEP-08
A013 15-AUG-08
A001 20-ОКТ-08
A008 15-AUG-08
A006 20-июл-08
A005 10-октябрь-08
A003 20-июл-08

SQL MAX () на значение даты с подзапросом

Чтобы получить данные «agent_code», «ord_date» и «cust_code» из таблицы «orders» при следующих условиях:

'ord_date' будет равна максимальной 'ord_date' таблицы 'orders' со следующим условием -

'agent_code' таблицы 'orders' должен быть равен 'agent code' из
таблица 'orders' упоминается как псевдоним 'S'

можно использовать следующий оператор SQL:

SELECT agent_code, ord_date, cust_code 
FROM orders S 
WHERE ord_date=(
SELECT MAX(ord_date) 
FROM orders 
WHERE agent_code = S.agent_code);

Выход:

 AGENT_CODE ORD_DATE CUST_CODE
---------- --------- ----------
A008 15-AUG-08 C00002
A006 20 июля 2010 года C00023
A010 16-SEP-08 C00007
A004 23-SEP-08 C00008
A011 30 июля 2010 года C00025
A005 10-OCT-08 C00018
A001 20-OCT-08 C00014
A002 16-SEP-08 C00022
A009 13-июл-08 C00010
A007 20 июня 2010 года C00017
A006 20 июля 2010 года C00024
A003 20 июля 2010 года C00015
A010 16-SEP-08 C00007
A012 26-AUG-08 C00012
A013 15-AUG-08 C00013

SQL MAX () для значения даты с использованием соединения

Пример таблицы: заказы


Пример таблицы: отправка


Чтобы получить все столбцы из таблиц 'orders' и 'despatch' после объединения, с соблюдением следующего условия:

1. «ord_date» должно быть наибольшим (максимальным) из таблицы «orders»,

2. наибольшее (максимальное) значение ord_date должно быть равно таблице ord_date of orders,

3. 'agent_code' таблицы 'orders' должен быть равен 'agent_code' таблицы 'despatch' для присоединения,

можно использовать следующий оператор SQL:

SELECT * FROM orders 
LEFT JOIN despatch 
ON orders.agent_code = despatch.agent_code 
WHERE orders.ord_date=(
SELECT MAX(ord_date) FROM orders);

Выход:

 ORD_NUM ORD_AMOUNT ADVANCE_AMOUNT ORD_DATE CUST_C AGENT_ ORD_DESCRIPTION DES_NU DES_DATE DES_AMOUNT ORD_NUM ORD_DATE ORD_AMOUNT AGENT_CODE
---------- ---------- -------------- --------- ------ - ----- ----------------------------- ------ --------- - --------- ---------- --------- ---------- ------
    200117 800 200 20-OCT-08 C00014 A001 D003 25-OCT-08 900 200117 20-OCT-08 800 A001

Примечание. Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.

Вот слайд-презентация всех агрегатных функций.

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущий: Макс, где, в
Далее: Максимальное количество, имея

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code