<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
一張使用者表(user),有使用者id(id)、餘額(balance)等欄位,要求展示 餘額在某個區間內的人數
區間有0-1萬,1-10萬,10-50萬,50-100萬,100萬+,
下面是模擬資料:
使用者id 餘額 1 100 2 200 3 3223 4 100001 5 100025 6 512123 7 565656 8 10000001
統計結果應該如下所示:
餘額 人數
0-1萬 1
1-10萬 2
10-50萬 1
50-100萬 2
100萬+ 1
select count(if(balance between 0 and 10000, id , null ) ) as "0-1萬", count(if(balance between 10001 and 100000, id , null ) ) as "1-10萬", count(if(balance between 100001 and 500000, id , null ) ) as "10-50萬", count(if(balance between 500001 and 1000000, id , null ) ) as "50-100萬", count(if(balance > 1000000, id , null ) ) as "100萬+" from user ;
這樣可以查出來每個範圍對應的人數,但是不盡人意,而且寫的很麻煩…
select interval(balance,0,10000,100000,500000,1000000) as i ,count(*) from user group by i; select elt(interval(balance,0,10000,100000,500000,1000000),"0-1萬","1-10萬","10-50萬","50-100萬","100萬+") as region ,count(*) from user group by region;
利用了mysql提供的interval和elt函數實現了效果
interval
interval(N,N1,N2,N3) ,比較列表中的N值,該函數如果N<N1返回0,如果N<N2返回1,如果N<N3返回2 等等。
elt
elt(n,str1,str2,str3,…) 如果n=1,則返回str1,如果n=2,則返回str2,依次類推
兩個函數結合,再加上group,實現了這種範圍分組的效果
由於使用的是類似mysql語句查詢的一個分析資料庫,它不支援elt函數和interval函數(抄mysql沒有抄全…)
實現這種範圍分組的場景,可以通過建立中間表的形式實現。然後通過使用者表去join
建立如下一個中間表:有下限、上限和區間名三個欄位
lower upper region 0 10000 0-1萬 10001 100000 1-10萬 100001 500000 10-50萬 500001 1000000 50-100萬 1000000 2000000000 100萬+
使用者表就可以通過餘額欄位去join這個表
select region,count(*) from user left join tmp on user.balance between tmp.lower and tmp.upper group by region
就可以實現範圍分組的效果
相比之前兩種,感覺這個想法很有趣(同事教的)。
tick_count是次數、user_account是使用者標識,user_account可能重複,統計0次,1-3次、4-6次、7-9次、10-12次、13次以上,這幾個區間各有多少個使用者數
select case when tc.stick_count = 0 then '0' when tc.stick_count > 0 and tc.stick_count <= 3 then '1to3' when tc.stick_count > 3 and tc.stick_count<= 6 then '4to6' when tc.stick_count > 6 and tc.stick_count <= 9 then '7to9' when tc.stick_count > 9 and tc.stick_count <= 12 then '10to12' when tc.stick_count > 13 then 'more13' end stickLevel, COUNT(DISTINCT user_account) total from t_stick_detail_hourly tc group by case when tc.stick_count = 0 then '0' when tc.stick_count > 0 and tc.stick_count <= 3 then '1to3' when tc.stick_count > 3 and tc.stick_count<= 6 then '4to6' when tc.stick_count > 6 and tc.stick_count <= 9 then '7to9' when tc.stick_count > 9 and tc.stick_count <= 12 then '10to12' when tc.stick_count > 13 then 'more13' end
執行結果
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45