Java 如何在Hypersql数据库(HSQLDB)中选择多个列,但仅按一列分组?
我使用的是Java 如何在Hypersql数据库(HSQLDB)中选择多个列,但仅按一列分组?,java,mysql,hsqldb,hypersql,Java,Mysql,Hsqldb,Hypersql,我使用的是HSQLDB-2.3.3version, 这里我展示了一个简单的MySQL查询 例如: SELECT name,age,emailid,country FROM players GROUP BY country; 但如果我在HyperSQL中执行相同的查询,它会显示一个错误, “表达式不在聚合列或分组列PUBLIC.PLAYERS.NAME中” 如果我用select语句将group应用于我选择的每一列,它将显示所有列的聚合结果 我的问题是,如何在HyperSQL中使用一列聚合(gro
HSQLDB-2.3.3
version,
这里我展示了一个简单的MySQL查询
例如:
SELECT name,age,emailid,country FROM players GROUP BY country;
但如果我在HyperSQL
中执行相同的查询,它会显示一个错误,
“表达式不在聚合列或分组列PUBLIC.PLAYERS.NAME中”
如果我用select
语句将group应用于我选择的每一列,它将显示所有列的聚合结果
我的问题是,如何在HyperSQL
中使用一列聚合(groupby
)显示多个列
表玩家
:
pid
姓名
电子邮件ID国家
地区
年龄
1
Samual
Samual@gmail.com
印度
德里
25
2
Vino
Vino@gmail.com
印度
德里
20
3
John
John@gmail.com
印度
德里
20
4
Andy
Andy@gmail.com
印度
德里
22
5
Brian
Brian@hotmail.com
美国
德里
21
6
Dew
Dew@hotmail.com
美国
德里
24
7
Kris
Kris@hotmail.com
美国
德里
25
8
William
William@hotmail.com
印度
德里
26
9
George
George@hotmail.com
印度
德里
23
10
Peter
Peter@gmail.com
印度
德里
19
11
Tom
Tom@gmail.com
美国
德里
20
12
Andre
Andre@hotmail.com
印度
德里
20
预期的结果
:
姓名
年龄
电子邮件ID
国家
Brian
21
Brian@hotmail.com
美国
Samual
25
Samual@gmail.com
印度
在MySQL中实现GORUP BY与其他遵循SQL标准的数据库不同。在这种情况下,查询不应该工作
您期望的结果包含每个国家的pid
最低的人。您可以编写一个查询,明确要求:
SELECT name, age, emailid, country FROM players
WHERE pid IN (SELECT MIN(pid) FROM players GROUP BY country)
查询首先查找每个国家/地区的最低
pid
。然后,它选择包含这些pid
值的两行。在MySQL中实现GORUP BY与遵循SQL标准的其他数据库不同。在这种情况下,查询不应该工作
您期望的结果包含每个国家的pid
最低的人。您可以编写一个查询,明确要求:
SELECT name, age, emailid, country FROM players
WHERE pid IN (SELECT MIN(pid) FROM players GROUP BY country)
查询首先查找每个国家/地区的最低
pid
。然后选择包含这些pid
值的两行。请添加一些示例数据和预期结果。例如,如果两个不同的人在同一个国家/地区,您希望在该国家/地区的分组行中返回哪些数据。请添加一些示例数据和预期结果。例如,如果两个不同的人在同一个国家/地区,您希望在该国家/地区的分组行中返回哪些数据。