2014-10-31 37 views
1

我是新來的T-SQL這個問題是T-SQL計數101基本T-SQL COUNT

我學習T-SQL與本網站http://sqlmag.com/t-sql/t-sql-101-lesson-4,但我想不出哪一部分的編碼說WHERE(column_name)執行'COUNT'如果它是有道理的?換句話說,這個COUNT怎麼知道要算什麼?它只是說什麼都算從MovieReview表評論.....

SELECT MovieName, 
LEFT(REPLICATE('* ',AVG(Stars)),10) 
AS 'Stars', 
COUNT(*) AS 'Reviews' 
FROM MovieReview 
GROUP BY MovieName 
HAVING COUNT(*) >= 4 
ORDER BY Stars 

結果: Result

表名是MovieReview包含收視率的五個員工給予他們已經影片在業餘時間觀看。此表包含四列:僱員ID,流派,電影名稱和明星。 Stars字段指定電影的評分,其中1星是最差的評分,5是最好的評分。

我知道下面的編碼,因爲它指定了WHERE。什麼都算爲「...」從員工表,其中薪水低於3000

SELECT COUNT(*) 
AS 'Impoverished' 
FROM Employee 
WHERE Salary < 30000 

我需要學習創建從數據倉庫的報告。我學習了SQL,但大多數網站在創建報告時使用T-SQL,我不知道爲什麼。

在此先感謝。

回答

1

count(*)計數匹配where子句如果where子句給出,每group by列的不同組合,如果group by欄中給出的是的數。 除前面句子中提到的行爲外,count(*)將忽略這些行中的值。

+0

嗨Mureinik,謝謝你的回答!所以當沒有給出WHERE時,COUNT會計算指定了什麼GROUP BY?謝謝〜 – user3601310 2014-10-31 10:09:31

+0

如果你沒有'where'子句,'count(*)'會給出'group by'列中每個不同值的行數。 – Mureinik 2014-10-31 10:13:11

+0

謝謝Mureinik,現在我明白了! :) – user3601310 2014-10-31 10:15:39