Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL server 2005 - групиране на стойности, показване само на промени

Бих използвал израз на обща таблица, за да включа пореден номер на ред въз основа на date_loaded и след това да го използвам в самосъединяване, както следва:

CREATE TABLE #temp (
    value INT,
    date_loaded DATETIME
)

INSERT INTO #temp VALUES (1,'2012-03-7')
INSERT INTO #temp VALUES (1,'2012-03-6')
INSERT INTO #temp VALUES (1,'2012-03-5')
INSERT INTO #temp VALUES (3,'2012-03-4')
INSERT INTO #temp VALUES (4,'2012-03-3')
INSERT INTO #temp VALUES (1,'2012-03-2')

;WITH cte AS (SELECT ROW_NUMBER() OVER (ORDER BY date_loaded) AS n, value, date_loaded FROM #temp)
SELECT t2.value, t2.date_loaded
FROM cte t2 LEFT JOIN cte t1 ON t2.n = t1.n + 1
WHERE t2.value <> ISNULL(t1.value, -1)

DROP TABLE #temp



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверя дали клиентът има инсталиран доставчик на SQLNCLI10 при сърфиране?

  2. SQL:Грешка, лимитът на Expression услуги е достигнат?

  3. Явна грешка в полето за изображение

  4. SQL – Преобразуването на тип данни varchar в тип данни за дата и час води до стойност извън диапазона

  5. SQL Server 2005 Пивот върху неизвестен брой колони