mysql-全表累加統計
實現思路
1)定義使用者變數,設定初始值
2)累加賦值,所求值作為顯示列
select
create_time,total_num,@total_num := 0,
@total_num := @total_num + stn as stn
from (
select
create_time,total_num,sum(total_num) stn
from opm_merchant_coupon where activity_id=4020000000220
group by create_time
order by create_time
) as temp,(select @total_num := 0) t
說明
mysql-分組累加統計
實現思路
1)基於父查詢傳遞的值進行範圍性的子查詢,然後拼接出想要的字段(子查詢作為顯示列)
2)父查詢最終顯示每一行資料
簡化-示例
select a, b, c,
(select sum(c) from sss where a= a.a and b<= a.b) t
from sss a;
說明
其它-示例
select
omc.id, omc.merchant_code, omc.merchant_name, omc.user_code, omc.activity_id, omc.activity_name,
omc.parklot_range_code, omc.parklot_range_name, omc.send_type, omc.buy_type, omc.forward_time,
omc.rule_type,
omc.info, omc.time_type, omc.valid_start_time, omc.valid_end_time, omc.delay_time,
omc.valid_time, omc.total_num, omc.remain_num, omc.create_time, omc.op_time, omc.sys_time,
sca.total_num-(select sum(total_num) from opm_merchant_coupon
where activity_id = omc.activity_id and create_time <= omc.create_time) couponremainnum
from opm_merchant_coupon omc
left join sys_coupon_activity sca on omc.activity_id=
sca.id
where 1=1
and omc.merchant_name like concat('%','大廈中心','%' )
order by omc.create_time desc
limit 0,10
mysql 全表掃瞄 mysql的全表掃瞄
在mysql查詢中,如果表沒有索引的話,當查詢執行時,需要從第一行資料到最後一行資料進行全表掃瞄。索引的目的就是輔助查詢能快速定位到目標資料,然後獲取查詢結果。那麼表是否有了索引就一定能加以應用,而不會進行全表掃面了呢?現實肯定不是這樣的 1 全表掃瞄的場景 使用explain分析sql時,當列出執...
mysql全表掃瞄 mysql 全表掃瞄場景
全表掃瞄是資料庫搜尋表的每一條記錄的過程,直到所有符合給定條件的記錄返回為止。通常在資料庫中,對無索引的表進行查詢一般稱為全表掃瞄 然而有時候我們即便新增了索引,但當我們的sql語句寫的不合理的時候也會造成全表掃瞄。以下是經常會造成全表掃瞄的sql語句及應對措施 1.使用null做為判斷條件 如 s...
mysql 避免全表 mysql避免全表掃瞄
我們在寫資料庫查詢語句的時候,經常會忽略一些查詢效能問題,導致最後在查詢資料的情況下非常耗時,影響專案質量。資料庫的設計是一門藝術,需要遵循一定的規範。對資料量很大的表一定要建立合適的索引,無論是單個索引還是復合索引,要根據查詢的業務邏輯去建立,同時也記住,單個表的索參數量不得超過5個,不然會很導致...