gpt4 book ai didi

java - 如何在 Hypersql 数据库(HSQLDB)中选择多列但仅按一列分组?

转载 作者:行者123 更新时间:2023-11-30 22:25:54 24 4
gpt4 key购买 nike

我正在使用 HSQLDB-2.3.3 版本,这里我展示了一个简单的 MySQL 查询。

例子:

SELECT name,age,emailid,country FROM players GROUP BY country;

但是如果我在 HyperSQL 中执行相同的查询,它会显示错误,“表达式不是按 PUBLIC.PLAYERS.NAME 列汇总或分组”

如果我将组应用于我使用 select 语句选择的每一列,它会显示所有列的聚合结果。

我的问题是,如何在 HyperSQL 中用一列聚合(GROUP BY)显示多列??

玩家:

pid name emailid country region age

1 Samual Samual@gmail.com 印度 德里 25

2 Vino Vino@gmail.com 印度 德里 20

3 John John@gmail.com 印度 德里 20

4 安迪 Andy@gmail.com 印度 德里 22

5 Brian Brian@hotmail.com 美国 DELHI 21

6 Dew Dew@hotmail.com 美国 DELHI 24

7 Kris Kris@hotmail.com 美国 DELHI 25

8 威廉 William@hotmail.com 印度 德里 26

9 乔治 George@hotmail.com 印度 德里 23

10 Peter Peter@gmail.com 印度 德里 19

11 汤姆 Tom@gmail.com 美国 德里 20

12 安德烈 Andre@hotmail.com 印度 德里 20

预期的结果:

name age emailid country

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 值的两行。

关于java - 如何在 Hypersql 数据库(HSQLDB)中选择多列但仅按一列分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com