20120318

T-SQL - 對bit格式欄位進行GROUP BY

說明

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

 

但是如果我們要統計的欄位,其格式是「bit」的話,那要怎麼辦呢?

 

 

解決方法

語法:

  1: SELECT
  2:     CONVERT(CHAR(8), TimeRecord, 112) AS RecordDate,
  3:     SUM(CONVERT(int, IsSold)) AS SoldTimes
  4: FROM dbo.Baby_Log
  5: WHERE
  6:     (mk = @mk) AND
  7:     (IsSold = 1)
  8: GROUP BY CONVERT(CHAR(8), TimeRecord, 112)
  9: ORDER BY RecordDate DESC
 10: 

說明:

這一句,我是利用「CONVERT」這個函式,將原有的bit欄位「IsSold」改型別為int;如此一來就可以利用統計函式(如SUM()),來進行GROUP BY,以得到我們想要的結果。

 

 

參考網址

CAST 和 CONVERT (Transact-SQL)

SQL Aggregate BIT Columns with Group By

沒有留言: