一張user表 裡面有id、國籍、出生日期等字段
現在要統計各個國家成年的人有多少、未成年的人有多少
結果如下圖所示
第一種寫法:
select
gjname,
(select count(0) from criminal_base_info where gjname=baseinfo.gjname and trunc(months_between(sysdate,csrq)/12,0)>=18) cn,
(select count(0) from criminal_base_info where gjname=baseinfo.gjname and trunc(months_between(sysdate,csrq)/12,0)<18) wcn
from
criminal_base_info baseinfo
where
gjname is not null
group by gjname
第二種寫法:
select
(a1.gjname),wcn,cn
from
(select gjname
from
criminal_base_info baseinfo
where
gjname is not null
group by gjname
) a1
left join (
select count (baseinfo.id) as wcn,gjname
from
criminal_base_info baseinfo
where
trunc(months_between(sysdate,csrq)/12,0)<18
group by
gjname
) a2 on a1.gjname = a2.gjname
left join (
select count (baseinfo.id) as cn,gjname
from
criminal_base_info baseinfo
where
trunc(months_between(sysdate,csrq)/12,0)>=18
group by
gjname
) a3 on a1.gjname = a3.gjname
對比一下效率
7000+條資料的情況下
第一種:速度為0.08s~0.1s之間
第二種:速度穩定在0.06s
SQL查詢效率的討論
對於資料庫來說,查詢是資料庫的靈魂,那麼sql查詢效率究竟效率如何呢?下文將帶對sql查詢的相關問題進行討論,供您參考。乙個百萬級別的基本資訊表a,乙個百萬級別的詳細記錄表b,a中有個身份證id,b中也有身份id 先要找出a中在b的詳細記錄。s1 select b.from a inner join...
sql 如何提高SQL查詢的效率?
如何提高sql查詢的效率?原創猴子聊人物 發布於2019 10 31 21 00 00 閱讀數 11195 收藏 展開 題目 我們公司的資料量非常大,需要的不僅僅是提取資料,要了解sql方案優化的。一般在寫sql時需要注意哪些問題,可以提高查詢的效率?解題思路 資料量大的情況下,不同的sql語句,消...
mysql按日期分組統計的查詢
最近寫的乙個使用者資料統計相關介面,需要用到按照每天進行分組統計。select date format create time,y m d sum user id from orders where order state 2 group by date format create time,y m...