『壹』 sql語句count怎麼使用
過多繁瑣的sql影響代碼質量,及維護成本,以下為兩種小技巧處理方式,僅供參考。
『貳』 SQL 查詢使用COUNT函數一個方法
select 欄位a,
count(case when (條件) then 表1.欄位b end) as c
from 表1 inner join 表2 on 表1.欄位=表2.欄位
可以用case加條件。
『叄』 關於SQL中count的用法
用sum更好點,如
(一)
select
a.單位名稱,sum(case
when
b.時間>='2007-04-01'
and
b.時間<'2007-07-01'
then
1
else
0
end)
as
[2007二季度],sum(case
when
b.時間>='2007-10-01'
and
b.時間<'2008-01-01'
then
1
else
0
end)
as
[2007四季度]
from
表一
a
left
join
表二
b
on
a.單位名稱=b.單位名稱
group
by
a.單位名稱
(二)
select
a.單位名稱,sum(case
when
b.時間>='2007-04-01'
and
b.時間<'2007-07-01'
and
b.類別='e'
then
1
else
0
end)
as
[2007二季度],sum(case
when
b.時間>='2007-10-01'
and
b.時間<'2008-01-01'
and
b.類別='e'
then
1
else
0
end)
as
[2007四季度]
from
表一
a
left
join
表二
b
on
a.單位名稱=b.單位名稱
group
by
a.單位名稱
『肆』 SQL語句中count和count的區別
SQL語句中count和count沒有區別。表示返回匹配指定條件的行數。
SQL COUNT() 語法:
1、SQL COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入),如:SELECT COUNT(column_name) FROM table_name。
2、SQL COUNT(*) 函數返回表中的記錄數,如:SELECT COUNT(*) FROM table_name。
3、SQL COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目,如:SELECT COUNT(DISTINCT column_name) FROM table_name。
(4)countsql擴展閱讀:
COUNT和 DISTINCT 經常被合起來使用,目的是找出表格中有多少筆不同的數據 (至於這些數據實際上是什麼並不重要)。COUNT(DISTINCT column_name) 語法適用於 ORACLE 和 Microsoft SQL Server,但是無法用於 Microsoft Access。
COUNT(column_name)語法返回的數目是檢索表中的這個欄位的非空行數,不統計這個欄位值為null的記錄。而COUNT(*)語法返回的數目是包括為null的記錄。
『伍』 sql 語句中count函數怎麼用
COUNT() 函數返回匹配指定條件的行數。
SQL COUNT(column_name) 語法
COUNT(column_name) 函數返回指定列的值的數目(NULL 不計入):
SELECT COUNT(column_name) FROM table_name;
SQL COUNT(*) 語法
COUNT(*) 函數返回表中的記錄數:
SELECT COUNT(*) FROM table_name;
SQL COUNT(DISTINCT column_name) 語法
COUNT(DISTINCT column_name) 函數返回指定列的不同值的數目:
SELECT COUNT(DISTINCT column_name) FROM table_name;
注釋:COUNT(DISTINCT) 適用於 ORACLE 和 Microsoft SQL Server,但是無法用於 Microsoft Access。
SQL COUNT(column_name) 實例
下面的 SQL 語句計算 "access_log" 表中 "site_id"=3 的總訪問量:
實例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;
SQL COUNT(*) 實例
下面的 SQL 語句計算 "access_log" 表中總記錄數:
實例
SELECT COUNT(*) AS nums FROM access_log;
執行以上 SQL 輸出結果如下:
『陸』 sql語句中count的用法
a列有多少元素?你的意思應該是a列有多少個不同的元素吧?null算嗎?如果null不算,那麼count(distinct a)就可以。如果null算,那麼就要先看看有沒有null有的話就+1,具體的做法各個資料庫寫法上也會有所區別,這個就不寫了。
如果要比較三張表,那麼就需要交並補,那麼就需要用到union等語句關聯的寫法,各個資料庫也並不完全一致,根據資料庫選擇。
如元素要列出來,那麼直接distinct a 這樣就直接列出來了。
如果要知道每個元素的出現的次數,那麼就需要分組count了,a count(a)group by a
『柒』 SQL的COUNT語句
SQL中的count()語句是計算行數的語句,但根據括弧內的內容不同,略有區別。
1、創建測試表、插入數據:
createtabletest
(idint,
namevarchar(10),
name1varchar(10));
insertintotestvalues(1,'a','b')
insertintotestvalues(2,'c','d')
insertintotestvalues(3,'e',null)
2、做不同的測試(主要是針對欄位中含有null的情況)。
(a)測試語句
selectcount(*)fromtest;--不區分欄位,針對全表
結果:
(b)測試語句:
selectcount(id)fromtest;--針對一列不含空值的欄位
結果:
(c)測試語句:
selectcount(name1)fromtest;
結果:
結論:對count中為*或者列中不含空值的欄位,結果就是所有的行數,如果某一列含空值,結果就是去除了空行的部分的行數。
『捌』 sql中的count是什麼意思呢,求例子
COUNT是統計滿足條件的數量,例如下面的語句查詢總的記錄數:
SELECT COUNT(*) FROM tab;
例如下面的語句顯示男性的記錄數:
SELECT COUNT(*) FROM tab WHERE sex='男';
再如下面的語句同時顯示男性和女性的記錄數:
SELECT sex,COUNT(*) FROM tab GROUP BY sex;
『玖』 SQL count(*)是什麼意思
返回組中的項數。COUNT 與 COUNT_BIG 函數類似。兩個函數唯一的差別是它們的返回值。COUNT 始終返回 int 數據類型值。COUNT_BIG 始終返回 bigint 數據類型值。
Transact-SQL 語法約定
語法
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
備注
COUNT(*) 返回組中的項數。包括 NULL 值和重復項。
COUNT(ALL expression) 對組中的每一行都計算 expression 並返回非空值的數量。
COUNT(DISTINCT expression) 對組中的每一行都計算 expression 並返回唯一非空值的數量。
對於大於 2^31-1 的返回值,COUNT 生成一個錯誤。這時應使用 COUNT_BIG。
參數
ALL
對所有的值進行聚合函數運算。ALL 是默認值。
DISTINCT
指定 COUNT 返回唯一非空值的數量。
expression
除 text、image 或 ntext 以外任何類型的表達式。不允許使用聚合函數和子查詢。
*
指定應該計算所有行以返回表中行的總數。COUNT(*) 不需要任何參數,而且不能與 DISTINCT 一起使用。COUNT(*) 不需要 expression 參數,因為根據定義,該函數不使用有關任何特定列的信息。COUNT(*) 返回指定表中行數而不刪除副本。它對各行分別計數。包括包含空值的行。
重要事項:
使用 CUBE 或 ROLLUP 時,不支持區分聚合,如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用這些聚合,Microsoft SQL Server 2005 Database Engine 將返回一條錯誤消息並取消查詢。
返回類型
int
示例
A. 使用 COUNT 和 DISTINCT
以下示例列出了在 Adventure Works Cycles 工作的雇員可以擁有的不同標題的數量。
復制代碼
USE AdventureWorks;
GO
SELECT COUNT(DISTINCT Title)
FROM HumanResources.Employee;
GO
下面是結果集:
復制代碼
-----------
67
(1 row(s) affected)
B. 使用 COUNT(*)
以下示例計算 Adventure Works Cycles 的雇員總數。
復制代碼
USE AdventureWorks;
GO
SELECT COUNT(*)
FROM HumanResources.Employee;
GO
下面是結果集:
復制代碼
-----------
290
(1 row(s) affected)
C. 組合使用 COUNT(*) 和其他聚合函數
以下示例顯示可以組合使用 COUNT(*) 和選擇列表中的其他聚合函數。
復制代碼
USE AdventureWorks;
GO
SELECT COUNT(*), AVG(Bonus)
FROM Sales.SalesPerson
WHERE SalesQuota > 25000;
GO
下面是結果集:
復制代碼
----------- ---------------------
14 3472.1428
(1 row(s) affected)