突然想到这样的一个需求,思考了一下, 一时没有思路,请教一下大家。
- 数据量可能会比较大
- 数据库 暂定 PG
- 有可能 把 1 分 ,改成 10 分 为一个区段。
突然想到这样的一个需求,思考了一下, 一时没有思路,请教一下大家。
|
1
貌似 用 CASE when 语句, 能解决问题。。。。
|
|
rb6221Apr 28, 2018
2
高考没那么大数据吧 各省自己统计自己的,百万都不到
|
|
iiduceApr 28, 2018
3
开玩笑的讲,猜测事实的解决方法有可能是级级上报,这一级解决不了就让小一级的上报,最后是班主任让班长统计一下班里的,很简单啦。
|
|
DreaMQApr 28, 2018
4
先暂且假设你能得到精确到个人的数据
SELECT count(*) FROM <table> WHERE score = ? 对每一个分数跑一次,然后就可以做各种统计了吧 高考全国最多也就千万量级 |
|
vegito2002Apr 28, 2018
5
group by 分, 然后 count 什么的
不行吗? 前提是分数保存的是整数 |
|
SmilencerApr 28, 2018
6
case when + group by
|
|
7
你们没有意识到这个问题需要生成的实际上是直方图而不是简单的 group by 分数吗。。。
ref: https://stackoverflow.com/questions/1764881/getting-data-for-histogram-plot |
|
layorlayorApr 28, 2018
8
窗口函数???
|
|
angles6645Apr 28, 2018 via Android
10
高考分一定是整数的(至少我们是)直接 group by+count 就好了吧 按河南(我记得最大的)的量级也就是不到百万 还得文理分开
|
|
qwjhbApr 28, 2018
11
这种?
|
|
doubleflowerApr 28, 2018 via Android
12
循环 1 到 100 查 100 次不就行了
|
|
pmispigApr 28, 2018
13
这种静态的没必要一条语句做到,从 0-700,生成 700 条语句执行,写入一个新表就行了
|
|
jydengApr 28, 2018
14
group by,然后 count 最直接了
|
|
worldnodeApr 28, 2018
15
我突然想到的是,高考要靠 sql ....
|
|
takatoApr 28, 2018
16
23333
楼主是在统计 orderbook 吗? |
|
bomb77Apr 28, 2018
17
一年全国的高考学生也就在一千万左右吧,group by 后 count 一下应该不会很慢,而且这种数据也不会变化,取一次就可以缓存起来了。。
|
|
breadenglishApr 28, 2018
18
不要性能的话 case when + group by,子查询搞定。要性能的话加个表,存储刻度,然后关联搞定。
|
|
lafuerzaApr 28, 2018
19
该,最近 V2 上好多错别字
|
|
CEBBCATApr 28, 2018 via Android
20
没听懂,官方不是提供一分一档表吗?难道形势变了?
|
|
banboApr 28, 2018
21
windowing function
|
|
ctsedApr 28, 2018
22
es 了解一下
|
|
qf19910623Apr 28, 2018
23
这种数据考完了就固定了,不会变动,不需要实时查询,可以分区域统计,甚至人工统计层层上报也没什么问题
|
|
beginorOct 22, 2018 via Android
24
我来挖个坟, 使用 pg 生成序列函数,从 0 分到满分生成一个序列,再和分数表关联查询,貌似很容易吧
|
|
reusNov 19, 2018
25
SELECT count(*), score / 10
FROM scores GROUP BY score / 10 不就行了……想那么复杂 这个查询在 pg 11 下,是并行扫描的 而且,还能建索引 CREATE INDEX ON scores USING btree((score / 10)) |