Select SQL 中的 MIN()
Select MIN() in SQL
我已经写了这个 sql 语句来获取人员 ID、姓名和价格,例如机票.
SELECT Person.PID, Person.Name, Preis
FROM table.flug Flug
INNER JOIN table.flughafen Flughafen ON zielflughafen = FHID
INNER JOIN table.bucht Buchungen ON Flug.FID = Buchungen.FID
INNER JOIN table.person Person ON Buchungen.PID = Person.PID
WHERE Flug.FID = '10' ORDER BY Preis ASC;
我的输出是正确的,但应该只是带有 min(Preis) 的那一行。
如果我相应地更改我的代码,我会收到错误...
SELECT Person.PID, Person.Name, min(Preis)
FROM table.flug Flug ...
作为输出,我需要一行:PID、名称和价格,而价格是 min(Preis)。
您需要按 Person.PID
和 Person.Name
对结果进行分组,以便 select 这些字段在您使用聚合函数 min()
的同一查询中。
SELECT Person.PID, Person.Name, min(Preis) as Preis
FROM table.flug Flug ....
WHERE Flug.FID = '10'
GROUP BY Person.PID, Person.Name
ORDER BY 3 ASC;
由于您已经对行进行排序,只需添加一个 limit
子句:
SELECT Person.PID, Person.Name, Preis
FROM table.flug Flug
INNER JOIN table.flughafen Flughafen ON zielflughafen = FHID
INNER JOIN table.bucht Buchungen ON Flug.FID = Buchungen.FID
INNER JOIN table.person Person ON Buchungen.PID = Person.PID
WHERE Flug.FID = '10'
ORDER BY Preis ASC
LIMIT 1
如果查询正确返回了您想要的结果,但是您得到的行数比您想要的多,您可以在 [= 之后添加一个 LIMIT 1
子句11=].
如果您只想为 Person.PID
和 Person.Name
的每个唯一组合获取一行,则在 ORDER BY 子句之前添加一个 GROUP BY
子句,并使用 MIN()
在 SELECT
列表中聚集在 Preis
左右。
我已经写了这个 sql 语句来获取人员 ID、姓名和价格,例如机票.
SELECT Person.PID, Person.Name, Preis
FROM table.flug Flug
INNER JOIN table.flughafen Flughafen ON zielflughafen = FHID
INNER JOIN table.bucht Buchungen ON Flug.FID = Buchungen.FID
INNER JOIN table.person Person ON Buchungen.PID = Person.PID
WHERE Flug.FID = '10' ORDER BY Preis ASC;
我的输出是正确的,但应该只是带有 min(Preis) 的那一行。
如果我相应地更改我的代码,我会收到错误...
SELECT Person.PID, Person.Name, min(Preis)
FROM table.flug Flug ...
作为输出,我需要一行:PID、名称和价格,而价格是 min(Preis)。
您需要按 Person.PID
和 Person.Name
对结果进行分组,以便 select 这些字段在您使用聚合函数 min()
的同一查询中。
SELECT Person.PID, Person.Name, min(Preis) as Preis
FROM table.flug Flug ....
WHERE Flug.FID = '10'
GROUP BY Person.PID, Person.Name
ORDER BY 3 ASC;
由于您已经对行进行排序,只需添加一个 limit
子句:
SELECT Person.PID, Person.Name, Preis
FROM table.flug Flug
INNER JOIN table.flughafen Flughafen ON zielflughafen = FHID
INNER JOIN table.bucht Buchungen ON Flug.FID = Buchungen.FID
INNER JOIN table.person Person ON Buchungen.PID = Person.PID
WHERE Flug.FID = '10'
ORDER BY Preis ASC
LIMIT 1
如果查询正确返回了您想要的结果,但是您得到的行数比您想要的多,您可以在 [= 之后添加一个 LIMIT 1
子句11=].
如果您只想为 Person.PID
和 Person.Name
的每个唯一组合获取一行,则在 ORDER BY 子句之前添加一个 GROUP BY
子句,并使用 MIN()
在 SELECT
列表中聚集在 Preis
左右。