如何高效率的統計一段時間範圍內的新增充值人數的SQL寫法(MYSQL)?

時間 2021-06-04 09:25:46

1樓:Aommand

select count(1) cu from(select count(user_id) ct,time from sl_top_up

where status = 2 and pay_type IN (5, 9, 27)

and money > 90

group by user_id) ct

where ct =1

and time between unix_timestamp('2016-10-01') and unix_timestamp('2016-12-31');

2樓:殷遠超

select count(*) from (select account min(pay_time) as firsttime from payment group by account) as t where t.firsttime>="2012-05-01" and t.firsttime<"2012-06-01"

如果有這種需求,而寫入速度可以接受,可以增加account上的索引。時間也可以由datetime型別換位整型。

另外,對於每個使用者,第一次充值的時間不會再改變,將上語句中的巢狀語句結果儲存到另一張表是值得的。重複查詢的速度會大幅提公升,不過就不符合「一條語句」的限定了。 很多時候,高效和一條語句,這兩個條件是衝突的。

看你怎麼選擇。把語句少當效率高,應該是玩家的行為。不是工程師的態度啊

3樓:mysqlops

需要查出指定時間範圍內的結果是:

充值人數充值次數新增充值人數充值金額其中:充值人數充值次數充值金額是沒有問題的,直接做分組計算就可以完成的;

但是「新增充值人數」 是非常麻煩的,按你的資料庫設計與業務描述要求而言,推薦你再維護一張表,那就是記錄首次充值的帳號與發生時間,這樣先通過表:`payment` 計算一段時間內充值的UID,再跟儲存首次充值帳號的表關聯去除掉就可以得出你所所的值。

否則按你現在的做法,不僅每次非常慢,而且非常麻煩...

4樓:周西

select count(*) from table_a where field_time>='2012-05-01 00:00:00' and field_time<'2012-06-01 00:

00:00' and id not in (select id from table_a where field_time<'2012-05-01 00:00:

00')

如何度過特別孤獨的一段時間?

橙橙 有時喜歡聽歌,不是特別安靜得,是那種挺悲傷,但是又有高潮靜靜的看窗外,然後想很多事情,或者自己乙個人散步。只要不悲傷,自己乙個人也會享受孤獨的吧。 初二我得了抑鬱症。那段時間沒有人理解我,父母覺得我不可能得了抑鬱症,可是是確診的。同學老師不明白情況,只知道學習成績前幾名的她變成了天天不來學校成...

如何挽回說分開一段時間的女友?

黃家衛 其實每段感情裡面都會經歷熱戀期 平淡期 磨合期的,這個跟人類的衰落一樣,是無可避免的,你越是去抓緊它,反而會讓它流失更快了。其實異地的確會有很多問題存在,但像你所說的為了保持熱度,不斷的向對方要求和施壓聯絡,其實真的有意義嗎?就算對方每天跟你保持聯絡,變得讓你們的感情有很大的提公升?當你們相...

如何看待崩壞三策劃最近一段時間的騷操作?

餘七 先有運營後有天,零點酒吧還在前 十萬陰兵浩蕩來,三分之地勇無前 聖痕暴食當又立,許多艦長已成仙 原地超限要逆天,重磁暴斬往一邊 聽取意見先強調,調查問卷把家還 深淵榮耀盡開顏。失落迷迭蛋池放 再度定義新可肝,幾千材料任君攢 安娜聖痕真簡單,空中劈叉韭菜鮮 逼肝逼氪強無際,滿身銅臭登至巔 王八念...