Перейти к содержимому

Как вывести последнюю дату в sql

  • автор:

Функция SQL LAST ()

Последняя функция () возвращает значение указанного столбца в последней записи.

SQL ПОСЛЕДНИЙ) синтаксис (

SELECT LAST(column_name) FROM table_name;

Примечание: Только поддержка MS Access Последняя функция ().

SQL Server, MySQL и Oracle в SQL ПОСЛЕДНЕГО () место для работы

Синтаксис SQL Server

SELECT TOP 1 column_name FROM table_name
ORDER BY column_name DESC;

примеров

SELECT TOP 1 name FROM Websites
ORDER BY id DESC;

синтаксис MySQL

SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;

примеров

SELECT name FROM Websites
ORDER BY id DESC
LIMIT 1;

Oracle Синтаксис

SELECT column_name FROM table_name
ORDER BY column_name DESC
WHERE ROWNUM <=1;

примеров

SELECT name FROM Websites
ORDER BY id DESC
WHERE ROWNUM <=1;

Демонстрационная база данных

В этом уроке мы будем использовать w3big образец базы данных.

Ниже приводится выбранные «сайты» таблица данных:

+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 本教程 | http://www.w3big.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 6 | 百度 | https://www.baidu.com/ | 4 | CN | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+

SQL LAST () примеры

Следующий SQL заявление выбрать столбец таблицы «Сайты», «название» последнего рекордного значения:

примеров

SELECT name FROM Websites
ORDER BY id DESC
LIMIT 1;

реализация SQL из приведенных выше результатов, следующие:

Как получить последнюю по дате запись (SQLite)?

У меня есть таблица price (id, link, name, cost, date) . В столбце name содержатся имена товаров, в столбце cost — цена на соответствующий товар. Эти цены с некоторой периодичностью добавляются в таблицу. Мне необходимо вытащить из таблицы последнюю запись конкретного товара по дате. Как я это могу сделать?

Отслеживать
задан 26 янв 2023 в 0:13
55 5 5 бронзовых знаков
order by date limit 1
26 янв 2023 в 1:49

Последняя по дате = первая по убыванию дат. Первая = limit 1 | first 1 | top 1, в зависимости от диалекта sql. По убыванию дат = order by date desc.

26 янв 2023 в 3:42

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

SELECT * FROM price WHERE name = 'product_name' ORDER BY date DESC LIMIT 1; 

запрос сначала выбирает все записи с именем товара product_name , затем сортирует их по дате в порядке убывания и возвращ. только одну посл. запись с помощью оператора LIMIT 1 .

SELECT * FROM price p1 WHERE date = (SELECT MAX(date) FROM price p2 WHERE p1.name=p2.name AND p1.name='product_name') 
SELECT * FROM (SELECT * FROM price WHERE name = 'product_name' ORDER BY date DESC) as temp_table GROUP BY name 

Еще одно решение может быть функции для вашей СУБД, например ROW_NUMBER() в SQL, DENSE_RANK() в Oracle или RANK() в MySQL.

WITH temp_table AS ( SELECT id, link, name, cost, date, ROW_NUMBER() OVER (PARTITION BY name ORDER BY date DESC) as rn FROM price ) SELECT * FROM temp_table WHERE name = 'product_name' and rn = 1; 

Предложенный мной ранее запрос с использованием оператора GROUP BY может возвращать неожиданный результат, если таблица price содержит несколько записей с одинаковым именем товара и датой, так как в этом случае неопределенно, какую из этих записей вернет запрос. Есть несколько других способов решить эту задачу. Один из них — это использование сортировки и оператора LIMIT 1 в запросе. Например:

SELECT id, link, name, cost, date FROM price WHERE name = 'product_name' ORDER BY date DESC LIMIT 1; 

Этот запрос выбирает все записи с именем товара ‘product_name’, сортирует их по дате в порядке убывания и возвращает только одну последнюю запись с помощью оператора LIMIT 1.

Другой способ — подзапрос с макс. датой:

SELECT id, link, name, cost, date 

Как получить последнюю строку sql

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

Есть что добавить? Зарегистрируйтесь

Курсы по программированию на Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Похожие вопросы

26 октября 2021

26 октября 2021

26 октября 2021

26 октября 2021

  • 8 800 100 22 47 бесплатно по РФ
  • +7 495 085 28 38 бесплатно по Москве

Направления

  • Курсы «Backend-разработка»
  • Курсы «Frontend-разработка»
  • Курсы «Создание сайтов»
  • Курсы «Тестирование»
  • Курсы «Аналитика данных»
  • Интенсивные курсы
  • Курсы DevOps
  • Курсы «Веб-разработка»
  • Курсы «Математика для программистов»
  • Все курсы

О Хекслете

  • О нас
  • Карьера в Хекслете
  • Хекслет Колледж

ООО «Хекслет Рус» 432071, г. Ульяновск, пр-т Нариманова, дом 1Г, оф. 23 ОГРН 1217300010476

  • Справка
  • Вопросы и ответы
  • Сообщество
  • Дополнительно
  • Условия использования
  • Соглашение об обработке ПД
  • Оферта
  • Акции

EOMONTH (Transact-SQL)

Эта функция возвращает последний день месяца, содержащего указанную дату, с необязательным смещением.

Для вычисления начала месяца можно использовать DATETRUNC .

Синтаксис

EOMONTH ( start_date [ , month_to_add ] ) 

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

start_date

Выражение даты, задающее дату, для которой необходимо возвратить последний день месяца.

month_to_add

Необязательное целочисленное выражение, задающее количество месяцев, добавляемых к параметру start_date.

Если аргумент month_to_add имеет значение, то EOMONTH добавляет указанное число месяцев к значению start_date и возвращает последний день месяца, соответствующего полученной дате. Если это дополнение переполнено допустимым диапазоном дат, возникает EOMONTH ошибка.

Типы возвращаемых данных

date

Замечания

Функция EOMONTH может удалена к экземплярам под управлением SQL Server 2012 (11.x) и более поздних версий. Он не может удаленно использовать экземпляры с версией до SQL Server 2012 (11.x).

Примеры

А. EOMONTH с явным типом datetime

DECLARE @date DATETIME = '12/1/2022'; SELECT EOMONTH ( @date ) AS Result; GO 
Result ------------ 2022-12-31 (1 row(s) affected) 

B. EOMONTH со строковым параметром и неявным преобразованием

DECLARE @date VARCHAR(255) = '12/1/2022'; SELECT EOMONTH ( @date ) AS Result; GO 
Result ------------ 2022-12-31 (1 row(s) affected) 

C. Функция EOMONTH с параметром month_to_add и без него

Значения в этих результирующих наборах отражают дату выполнения между 12/01/2022 и 12/31/2022 (включительно).

DECLARE @date DATETIME = GETDATE(); SELECT EOMONTH ( @date ) AS 'This Month'; SELECT EOMONTH ( @date, 1 ) AS 'Next Month'; SELECT EOMONTH ( @date, -1 ) AS 'Last Month'; GO 
This Month ----------------------- 2022-12-31 (1 row(s) affected) Next Month ----------------------- 2012-01-31 (1 row(s) affected) Last Month ----------------------- 2022-11-30 (1 row(s) affected) 

Обратная связь

Были ли сведения на этой странице полезными?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar