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