20120319

T-SQL - 以計算值進行GROUP BY

說明

GROUP BY可以說是SQL中最重要的語法了。因為我們搜集資料的目的,就是從大量的資料中找出有用的資訊,其中又以各統計函數 (如SUM(), AVG(), MAX(), MIN(), COUNT())等等所代表的涵意最為重要。但是要利用到這些功能,就需要GROUP BY這個語法來將資料群組化,以便進行群組化。

尤其是常常使用到的功能就是要將計算過後的資料進行群組化,這時候就需要一些小技巧(語法)來達成我們想要的結果了。

 

 

解決方法

1. 以計算值進行GROUP BY

語法:

  1: SELECT
  2:     (DATEDIFF(MM, @mBirth, TimeRecord) – 1) AS MonthValue,
  3:     MAX(Height) AS Height
  4: FROM dbo.HealthLog
  5: WHERE (mk > 0)
  6: GROUP BY (DATEDIFF(MM, @mBirth, TimeRecord) – 1)
  7: 

說明:

這一句是利用「DATEDIFF」這個函式,將原有的日期減去一個特定的日期,以便得到二個日期間「差了幾個月份」,再針對此值進行GROUP BY,以得到我們想要的結果。

 

 

參考網址

CAST 和 CONVERT (Transact-SQL)

沒有留言: