在SQL中,`COUNT()`函數是一個聚合函數,主要用于計算表中行的數量。它可以有不同的使用方式,根據其參數的不同,功能也會有所不同。以下是`COUNT()`函數的一些主要功能:
1. 計算總行數:當`COUNT()`函數以`*`為參數時,它會返回表中的總行數,包括NULL值和重復值。
```sql
SELECT COUNT(*) FROM table_name;
```
2. 計算特定列的非NULL值數量:當`COUNT()`指定某個列名作為參數時,它將返回該列非NULL值的總數,忽略任何NULL值。
```sql
SELECT COUNT(column_name) FROM table_name;
```
3. 計算唯一值數量:結合`DISTINCT`關鍵字,`COUNT()`可以用來計算指定列中不同的非NULL值的數量。
```sql
SELECT COUNT(DISTINCT column_name) FROM table_name;
```
4. 條件計數:通過結合`CASE`語句或者`WHERE`子句,`COUNT()`可以用來計算滿足特定條件的行數。
```sql
SELECT COUNT(*) FROM table_name WHERE condition;
```
或者使用`CASE`語句:
```sql
SELECT COUNT(CASE WHEN condition THEN 1 ELSE NULL END) FROM table_name;
```
5. 分組統計:與`GROUP BY`語句搭配使用時,`COUNT()`可以用來計算每個分組內的行數。
```sql
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
```
6. 與`HAVING`子句結合使用:在分組統計的基礎上,可以進一步使用`HAVING`子句對分組后的結果進行過濾,比如篩選出數量超過某個值的分組。
```sql
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > some_value;
```
綜上所述,`COUNT()`函數在SQL中是一個非常強大的工具,可用于數據統計、數據分析等多種情況。