当前位置: 首页 > 面试题库 >

枚举Postgres表中的表分区

董翰墨
2023-03-14
问题内容

假设我有一个像这样的表:

id  | part  | value
----+-------+-------
 1  | 0     | 8
 2  | 0     | 3
 3  | 0     | 4
 4  | 1     | 6
 5  | 0     | 13
 6  | 0     | 4
 7  | 1     | 2
 8  | 0     | 11
 9  | 0     | 15
 10 | 0     | 3
 11 | 0     | 2

我想列举出部分属性为0的群组。

最终我想得到这个:

id  | part  | value | number
----+-------+-----------------
 1  | 0     | 8     |   1
 2  | 0     | 3     |   2
 3  | 0     | 4     |   3
 4  | 1     | 6     |   0
 5  | 0     | 13    |   1
 6  | 0     | 4     |   2
 7  | 1     | 2     |   0
 8  | 0     | 11    |   1
 9  | 0     | 15    |   2
 10 | 0     | 3     |   3
 11 | 0     | 2     |   4

是否可以使用Postgres窗口函数解决此问题,或者还有另一种方法?


问题答案:

是的,这很简单:

SELECT id, part, value,
       row_number() OVER (PARTITION BY grp ORDER BY id) - 1 AS number
FROM (SELECT id, part, value,
             sum(part) OVER (ORDER BY id) AS grp
      FROM mytable
     ) AS q;

 id | part | value | number 
----+------+-------+--------
  1 |    0 |     8 |      0
  2 |    0 |     3 |      1
  3 |    0 |     4 |      2
  4 |    1 |     6 |      0
  5 |    0 |    13 |      1
  6 |    0 |     4 |      2
  7 |    1 |     2 |      0
  8 |    0 |    11 |      1
  9 |    0 |    15 |      2
 10 |    0 |     3 |      3
 11 |    0 |     2 |      4
(11 rows)


 类似资料:
  • 我需要将枚举列表映射到Postgres中的表。 对于1:1关系的一般映射,我发现这篇文章非常有用。代码如下所示: 但是如果是一个,那么我就可以轻松地找到一个解决方案。因为定义失败了。 为了使其具体化:我有一个表,例如,我可以在其中存储和。为了示例起见,我可以存储多个(例如,基于时间的)。那么如何正确地定义它,如果我有 以同样的方式定义它的方法会导致异常(这似乎很清楚,因为注释是针对而不是针对)

  • 问题内容: 是否可以创建枚举值的ArrayList(并对其进行操作)?例如: 问题答案: 是的,绝对有可能,但是您必须这样做 然后,您可以将元素添加到:或。

  • 我有一个实体,其类型由enum表示。数据库是Postgres,在那里表示为枚举类型。我使用JPA/Hibernate及其存储库。请注意,我是JPA、Hibernate和Kotlin的新手。 我试图创建自定义,我需要选择类型(枚举)在可能类型列表中的公司。我,但是,遇到各种错误类型铸造在SQL和/或语法的。 Kotlin中数据类

  • 我有如下代码块: 在代码中,分号(;)被编译器标记为冗余。同时如果我使用 为什么在这两种情况下,分号都标记为多余?如何在Java中定义枚举列表的结尾?

  • 我在python上有一个元素列表,我可以在index.html页面上以下拉列表的形式获得它,并将一个选定的值发送到另一个页面进行处理。问题是如何选择列表中的多个元素。我的意思是只有几个没有或库的元素?

  • 作为学习r2DBC的一部分,我遇到了Enum转换面临的问题。我在这里使用PostgreSQL。当读取评级为PG-13和NC-17(任何带破折号的东西)的电影数据时,我面临问题。 下面是我的表模式 mpaa_rating定义为 这是我的代码,它在我的配置中注册转换器 我的检索代码很简单 添加引发的异常https://gist.github.com/harryalto/bd51bbcdd081868c