小编use*_*114的帖子

在每个分区的列中查找最大值

我有表结构,如:

CREATE TABLE new_test
( col1 NUMBER(2) NOT NULL,
  col2 VARCHAR2(50) NOT NULL,
  col3 VARCHAR2(50) NOT NULL,
  col4 VARCHAR2(50) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

它有数据:

col1    col2    col3    col4
0         A      B       X
1         A      B       Y
2         A      B       Z
1         C      D       L
3         C      D       M
Run Code Online (Sandbox Code Playgroud)

我需要找到col4的值,它对col2和col3的组合具有最大值.例如我的结果应该是:

col4
  Z
  M
Run Code Online (Sandbox Code Playgroud)

我尝试使用oracle分析函数:

SELECT col4, MAX(col1) OVER (PARTITION BY col2, col3) FROM (
SELECT col2, col3, col4, col1 
FROM new_test);
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.你能帮我解决这个问题吗?

更新:我可以使用:

SELECT a.col4
FROM new_test a,
  (SELECT col2,
    col3,
    col4, …
Run Code Online (Sandbox Code Playgroud)

oracle max analytic-functions partition-by

4
推荐指数
1
解决办法
517
查看次数

使用特定表名称的Oracle视图列表

我希望使用提到的表名找到特定模式下的所有视图的列表.

例如,如果view1和view2使用table1,使用表名"table1",我希望找到视图名称"view1"和view2".

请让我知道,我该怎么做.

oracle view names find

3
推荐指数
2
解决办法
1万
查看次数

通过单列而不是复合主键加入

我有单个JPA实体,我想在这个表上添加自联接.表看起来像例如

@Entity
@Table(name = "TABLE_A")
@IdClass(TableAPk.class)
public class TableA implements Serializable {

    private static final long serialVersionUID = 1L;


    @Id
    @Column(name = "COLUMN_1", nullable = false, length = 64)
    private String            column_1;

    @Id
    @Column(name = "COLUMN_2", nullable = false, precision = 10, scale = 2)
    private BigDecimal        column_2;


    @ManyToOne
    @JoinColumn(name = "COLUMN_1", insertable = false, updatable = false)
    //@ManyToOne(optional = true, fetch = FetchType.LAZY)
    //@JoinTable(name = "KEY_MAPPING", 
    //        joinColumns = { @JoinColumn(name = "J_COLUMN_1", referencedColumnName = "COLUMN_1", insertable = false, …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa exception one-to-many joincolumn

3
推荐指数
1
解决办法
4087
查看次数

正则表达式:允许最小字母数字,点和 - 字符.星号允许在任何地方?

我的要求是:

  1. 字符串应包含最少4个字符(仅允许使用字母数字,点和连字符).
  2. 除此之外,任何地方都可以使用星号(开头,中间或者结束)
  3. 它不应包含上面第1点和第2点中提到的任何其他字符.

例如以下是有效的字符串:

Ab*08

*.6-*N*
Run Code Online (Sandbox Code Playgroud)

以下是无效字符串:

****AB-*

GH.*
Run Code Online (Sandbox Code Playgroud)

我的正则表达式看起来像:

^(.*?[a-zA-Z0-9.\-]){4,}.*$
Run Code Online (Sandbox Code Playgroud)

我在第1点和第2点提到的基本验证是有效的.但正则表达式允许其他特殊字符,如<,>,等等.我如何修改我的正则表达式来实现这一目标?

java regex

2
推荐指数
1
解决办法
1404
查看次数

Oracle:在select查询中查找重复的行

我的SQL查询返回4列"A","B","C","D"的结果.

假设结果是:

A    B    C    D
1    1    1    1
1    1    1    2
2    2    2    1
Run Code Online (Sandbox Code Playgroud)

是否可以获得每行中包含"A","B","C"列的重复行数.

例如,预期的结果是:

A    B    C    D    cnt
1    1    1    1    2
1    1    1    2    2
2    2    2    1    1
Run Code Online (Sandbox Code Playgroud)

我尝试使用count(*)结束.但它返回查询返回的总行数.另一个信息是,在示例中,我只提到了3列,我需要根据这些列检查计数.但我的实际查询有8列.并且数据库中的行数很大.所以我认为分组在这里不是一个可行的选择.任何提示都很明显.谢谢.

sql oracle count duplicates

1
推荐指数
2
解决办法
4万
查看次数