我正在使用 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/