高考时,会有一个统计:每一分,有多少人, 这种需求的 SQL 语句改怎么写

2018-04-28 15:05:46 +08:00
 flyingfz

突然想到这样的一个需求,思考了一下, 一时没有思路,请教一下大家。

  1. 数据量可能会比较大
  2. 数据库 暂定 PG
  3. 有可能 把 1 分 ,改成 10 分 为一个区段。
4057 次点击
所在节点    PostgreSQL
25 条回复
banbo
2018-04-28 17:23:24 +08:00
windowing function
ctsed
2018-04-28 17:30:30 +08:00
es 了解一下
qf19910623
2018-04-28 17:39:01 +08:00
这种数据考完了就固定了,不会变动,不需要实时查询,可以分区域统计,甚至人工统计层层上报也没什么问题
beginor
2018-10-22 07:48:23 +08:00
我来挖个坟, 使用 pg 生成序列函数,从 0 分到满分生成一个序列,再和分数表关联查询,貌似很容易吧
reus
2018-11-19 17:26:19 +08:00
SELECT count(*), score / 10
FROM scores
GROUP BY score / 10

不就行了……想那么复杂
这个查询在 pg 11 下,是并行扫描的
而且,还能建索引 CREATE INDEX ON scores USING btree((score / 10))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/450687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX