java - SQL Derby : GROUP BY not selected id

标签 java sql select derby

我正在使用 Derby .
我有一个包含两列 X 和 Y 的表格。
我想选择 X 列,但按 Y 列分组。
这意味着我只想为每一行显示一个 X 值,并为其提供第一个 Y 值。

我该怎么做?

CREATE TABLE test (
    x INTEGER  NOT NULL ,
    y INTEGER  NOT NULL )

INSERT INTO test VALUES (1,1) ,(1,2) ,(1,3) ,(2 ,3),(3,3)

SELECT y FROM test GROUP BY x -- does not work 

我想要所有没有重复的 y 值

原始数据

X    Y
--   --
1    1
1    2
1    3
2    3
3    3

结果应该是:

X    Y
--   --
1    1
1    2
2    3

最佳答案

你必须 aggregate x 以某种方式:

SELECT   Y,
         MAX(X) AS Max_X,
         AVG(X) AS Avg_X

FROM     myTable
GROUP BY Y
ORDER BY Y

最小值、最大值、平均值、第一个、最后一个等

如果您不关心得到哪个 x,也许只选择第一个或最后一个:

SELECT   Y,
         First(X) AS X,
FROM     myTable
GROUP BY Y

关于java - SQL Derby : GROUP BY not selected id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271990/

相关文章:

sql - 使用从另一列填充的数据更改表添加列

sql - 我非常讨厌 MySQL(帮助构建查询)

java - BouncyCaSTLe Java API 和 OpenSSL 生成的 ECDH key 不同

java - 发送空搜索规范

php - Codeigniter Ajax请求与mysql一样查询编码字符串为字符

MYSQL 多列 COUNT DISTINCT

javascript - 如何对选择列表中的选项进行排序但将一个选项保留在顶部

php - 输出中缺少行

java - 理解netty中的DelimeterDecoder

c# - 如何在 XSD 中为 byte[] 类型建模?