mysql求大神優化sql語句

時間 2022-01-25 23:20:35

1樓:匿名使用者

可以這樣寫成只使用1個子查詢:

select a.* ,b.d as day_num,b.m as month_num,b.y as year_num

from watersku a,(select sum(b.num) as y,

sum(case when date_format(b.add_time,'%y-%m')=date_format(now(),'%y-%m')

then b.num else 0 end) as m,

sum(case when date_format(b.add_time,'%y-%m-%d')=date_format(now(),'%y-%m-%d')

then b.num else 0 end) as d

from tra_order b , tra_trade b0

where a.sku_id = b.sku_id and b.

tids = b0.tid and b0.status > 2 and date_format(b.

add_time,'%y')=date_format(now(),'%y'))b

另外上述按當前年、月、系統日期篩選比較表示式,也可以直接用year,month函式替代format函式進行比較,也許效率會高一些。

至於哪些寫法的效率高一點,很多時候實際情況與我們想象有較大差距,有時我們認為效率低的寫法執行效率並不會比我們認為高的寫法低很多,甚至有可能掉反過來,對於這一點我在實際工作中深有體會。穩妥一些的做法是檢視sql執行計劃,當然更為可靠的辦法是使用大資料表進行實測比較。

2樓:匿名使用者

我的想法是,只用年的聯合查詢,然後在結果集中再細分。

MY SQL 語句寫法,SQL語句的寫法

select case when select ifnull 分組標記,from 表名 t2 where t2.編號 t1.編號 1 t1.分組標記 then else t1.分組標記 end as 標記,t1.編號,t1.名稱,t1.規格。from 表名 t1 order by t1.編號。wit...

如何優化用sql語句insert

小舅舅有點帥 插入書寫方式 1 insert into t1 field1,field2 value 001 002 最好的做法明確插入的每一列,列於查錯,而且漏列的機率會降低。2 insert into t1 field1,field2 values 001 002 003 004 能夠批量插入資...

求sql語句,求!!!SQL語句!

隨緣寫法你看是你要的不,實際上要是已經是1和0了 直接sum也行select a1,sum a2 sum a3 from a group by a1 既然已經是1和0了,那麼直接sum就可以了 select place,sum tdbz sum xdbz from table group by pl...