PostgreSQL 11 发布

2018 年 10 月 20 日
 zjp
https://www.postgresql.org/about/news/1894/

其实已经发布两天了...这节点真的冷清😂
6302 次点击
所在节点    PostgreSQL
25 条回复
autotesting
2018 年 10 月 20 日
借问一个问题,如果用 sql 语句先对某几个字段 group_by 了之后,如何取到关于这几个字段分组后,所有其他数据的整体数据呢?
iappled
2018 年 10 月 20 日
@autotesting count sum
sfqtsh
2018 年 10 月 20 日
rc1 时就已经说会在 18 号发布正式版 11.0 了。
JackieMe
2018 年 10 月 20 日
Dedian sid 貌似前几天就已经有了。
Klingon
2018 年 10 月 20 日
@autotesting 每天看懂你需求,你是要分组聚合还是分窗口,好像你要问的是窗口函数
autotesting
2018 年 10 月 20 日
@iappled 不是 group by 取 count 或者 sum,而是 count 中的所有对象。
autotesting
2018 年 10 月 20 日
@Klingon 分组后取到所有此分组的所有对象,而不是仅仅是 count 或者 max min 这样的结果。
ShareDuck
2018 年 10 月 20 日
@autotesting #7 那么你不应该是用 where 就能解决问题了么?为何要用 group by ?
autotesting
2018 年 10 月 20 日
@ShareDuck 是需要先分组,然后对应的取到每个分组的所有对象,用 where 的话,我应该是先知道查询条件才能 where 吧,我是不是理解的不对?
zjp
2018 年 10 月 20 日
@autotesting 中文的分组和 SQL 的 group by 含义不一样,group by 后每组只能有一行输出。你要的还是窗口。
ShareDuck
2018 年 10 月 20 日
@autotesting #9 那你的需求应该是先“获取表中某个列有多少个不同值”,这个操作不应该用 group by 吧,用 SELECT DISTINCT,参考 http://www.w3school.com.cn/sql/sql_distinct.asp
ShareDuck
2018 年 10 月 20 日
@autotesting #9
查了一下“窗口”的资料,10 楼的方案应该是你需要的。
paodange
2018 年 10 月 20 日
分组后你拿什么跟原数据进行关联呢?如果是唯一 id,那本身就一条记录,没必要分组啊。有一个情况是,在 group by 后面加上 having 筛选一部分数据,然后再通过 id 与原表数据关联。比如查询一个表中,name 字段有相同的整条记录。select * from table a join (select name from table group by name having count(1)>1) b on a.name=b.name
autotesting
2018 年 10 月 21 日
@paodange 其实是想得到和 python groupby 一样的效果,简单讲,就是
| ID | COL1 | COL2 |
--------------------
| 1 | 0 | 0 |
| 2 | 0 | 1 |
| 3 | 1 | 11 |
| 4 | 1 | 12 |
| 5 | 1 | 16 |

比如,我想按 COL1 分组,然后得到的结果是(0,(model1,model2), (1, model3, model4, model5))这样的效果。

@ShareDuck @zjp @Klingon 可能这样描述会更清楚一点。
zjp
2018 年 10 月 21 日
直觉上不可能。关系数据库的单位是元组,也就是行,不能嵌套。结果集也只有行和列属性
@autotesting
zjp
2018 年 10 月 21 日
@autotesting
@zjp
你说的是 (0,(model1,model2)), (1, (model3, model4, model5))吧……
jamblues
2018 年 10 月 21 日
二楼应该是问的典型排行榜问题 在多个分类下如何取出每个排行榜的前 N 条数据
paodange
2018 年 10 月 21 日
@autotesting 这样的话,把 COL1 查两次,按 COL1 排序不就好了吗? select COL1 as XXX,* from table order by COL1,ID
hrong
2018 年 10 月 21 日
@autotesting 费了半天尽 ,14 楼这样你早点描述不就行了,浪费了人家多少时间。

这个要用 spark 的 flatmap 之类的函数实现吧。我也不是很精通,抱歉。
autotesting
2018 年 10 月 21 日
@zjp

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

https://v2ex.ih06.com/t/499349

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

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

© 2021 V2EX