Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uśredniać/sumować dane w ciągu dnia w SQL Server 2005

Jedna możliwość, jeśli musisz to robić wystarczająco często:dodaj do tabeli trzy kolumny obliczeniowe dla dnia, miesiąca, roku. Te kolumny są obliczane automatycznie na podstawie timestamp kolumna i są to tylko wartości całkowite, więc są łatwe w użyciu w GROUP BY .

Aby to zrobić, użyj tych instrukcji T-SQL:

ALTER TABLE dbo.ROASTER_FEED ADD TSDay AS DAY(timestamp) PERSISTED
ALTER TABLE dbo.ROASTER_FEED ADD TSMonth AS MONTH(timestamp) PERSISTED
ALTER TABLE dbo.ROASTER_FEED ADD TSYear AS YEAR(timestamp) PERSISTED

Teraz możesz łatwo wybrać swoje dane na podstawie dowolnego dnia:

SELECT TSDay, TSMonth, TSYear, SUM(FEED)   -- use AVG(FEED) for average values
FROM dbo.ROASTER_FEED
WHERE TSYear = 2011 AND TSMonth = 8   -- or whatever you want to grab from the table!
ORDER BY timestamp
GROUP BY TSDay, TSMonth, TSYear


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LINQ to SQL:zbyt duże użycie procesora:co się dzieje, gdy jest wielu użytkowników

  2. Jak zahaszować hasło administratora w tabeli Użytkownicy?

  3. Pełna tabela transpozycji SQL

  4. Błąd SQL 2008 VS 2012:niepoprawna składnia w pobliżu słowa kluczowego „COMPUTE”

  5. Wydajny sposób na dzielenie ciągów za pomocą CTE