mysq 全表累加統計 分組累加統計

2021-10-09 22:32:05 字數 1579 閱讀 9847

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個,不然會很導致...