Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL Derby:未选择分组依据id_Java_Sql_Select_Derby - Fatal编程技术网

Java SQL Derby:未选择分组依据id

Java SQL Derby:未选择分组依据id,java,sql,select,derby,Java,Sql,Select,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

我正在使用。 我有一个有两列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 2 3 必须指定所需的X

select
  min(X) X
from
  table
group by
  Y
您必须以某种方式执行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

我不熟悉Derby,但可以尝试以下子查询:

SELECT X
FROM table
WHERE Y in (SELECT MIN(Y) FROM table)

这里从表中选择MINY是为了选择Y的值,即您的“第一个Y值”,这里:Y的最小值。

您希望在x上得到什么聚合-最大值,最小值?在您的情况下,“第一个Y值”是什么?您的问题有点不清楚。发布一些示例数据和此数据所需的输出将非常有帮助。您可以填写结果的详细信息吗?当Y为3时,如何为X选择2?我不需要任何聚合方法我需要不重复的值
SELECT X
FROM table
WHERE Y in (SELECT MIN(Y) FROM table)