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

Как да осредните/сумирате данни за един ден в SQL Server 2005

Една възможност, ако трябва да правите това достатъчно често:добавете три изчислени колони за ден, месец, година към вашата таблица. Тези колони се изчисляват автоматично въз основа на timestamp колона и те са само цели числа, така че са лесни за използване в GROUP BY .

За да направите това, използвайте тези 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

Сега можете лесно да изберете вашите данни въз основа на всеки ден, който пожелаете:

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. Неуспешно влизане. Входът е от ненадежден домейн и не може да се използва с Windows удостоверяване

  2. Periodic InvalidCastException и сървърът не успя да възобнови транзакцията с Linq

  3. Вмъкване на данни от DataGridView в база данни

  4. Актуализирайте часовата част на DateTime в SQL

  5. Може ли ограничение за проверка да се отнася до друга таблица?