1. 程式人生 > 資料庫 >SQL Server 高階查詢-COUNT()(二)

SQL Server 高階查詢-COUNT()(二)

時間煮雨
@

返回內容(行)的個數

COUNT() 函式的作用就像它的函式名一樣能讓大家一目瞭然,沒錯,它就是用來計數的。

COUNT() 函式有兩種使用方法:

  1. 使用 COUNT(*) 能對整張表的內容(行)進行計數,不管內容(行)是有值還是空值。
  2. 使用 COUNT(欄位) 能對某一欄位的內容(行)進行計數,但是會忽略 NULL 值。

語法規則為:

1. 
 SELECT COUNT(*)  
 FROM 表名 
2. 
 SELECT COUNT(欄位名) 
 FROM 表名 

舉個例子

我們想從表 Customers 中,檢索到整張表一共有多少內容(行)。
Customers 的內容如下圖所示:

在這裡插入圖片描述
輸入:

SELECT COUNT(*) AS nums 
FROM Customers

輸出:
在這裡插入圖片描述
檢索過程為:
在這裡插入圖片描述
在這個例子裡, COUNT(*) 用來對整張表的內容(行)進行計數,忽略了內容是否為空值。計數的結果最後返回到了nums

再舉個例子

我們想從表 Customers中,檢索到究竟有多少人擁有郵箱地址。表 Customers 的內容與上例一致。

輸入:

SELECT COUNT(cust_email) AS nums 
FROM Customers

輸出:
在這裡插入圖片描述
檢索過程為:
在這裡插入圖片描述
SELECT 語句使用了 COUNT(cust_email)來對 cust_email欄位下的非空值進行計數。在這個例子中,我們看到有五分之四的人擁有自己的郵箱。

Tips:

當我們指定對某一個欄位(列)進行計數時,COUNT() 就會忽略 NULL 對非空值進行計數。但是如果沒有指定欄位(列),使用 COUNT(*) 對整體內容(行)進行計數,計數就會包含空值行。這點要時刻保持清醒!

程式設計要求

我們已經為你建好了資料庫與資料表,並添加了相應的資料內容。你只需補全右側程式碼片段中 Begin-End 區間的程式碼,返回表Products中商品價格( prod_price)大於10的商品個數(只需返回數量即可)。

其中表 Products 的內容不公開,但是已知每個產品的價格非空。期待你的發揮!

測試說明

測試過程:

  • 本關涉及到的測試檔案是step2_test.sh
    ,平臺將執行使用者補全的 step2.sql檔案,得到資料;
  • 將得到的資料與答案比較,判斷程式碼是否正確。

如果操作正確,你將得到如下的結果:
在這裡插入圖片描述
開始你的任務吧,祝你成功!

USE Mall
GO

SET NOCOUNT ON

------ return the number of product which price bigger than 10 -----
-- ********** Begin ********** --

SELECT COUNT(prod_price)
FROM Products 
WHERE prod_price > 10;

-- ********** End ********** --

GO

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述