Postgresql 获取Postgres中与MAX()值匹配的行数计数

Postgresql 获取Postgres中与MAX()值匹配的行数计数,postgresql,Postgresql,我有一张名为“games”的表格,其中有一列名为“week”。我试图找到一个查询,它将为我提供“week”的最大值,以及该表中有多少行具有“week”的最大值。我可以将其分为两个查询: SELECT MAX(week) FROM games // store value in a variable $maxWeek SELECT COUNT(1) FROM games WHERE week = $maxWeek // store that result in a variable 有没有一种方

我有一张名为“games”的表格,其中有一列名为“week”。我试图找到一个查询,它将为我提供“week”的最大值,以及该表中有多少行具有“week”的最大值。我可以将其分为两个查询:

SELECT MAX(week) FROM games
// store value in a variable $maxWeek
SELECT COUNT(1) FROM games WHERE week = $maxWeek
// store that result in a variable
有没有一种方法可以在一个查询中完成这一切

SELECT week, count(*) FROM games GROUP BY week ORDER BY week DESC LIMIT 1;

(可能更快)


(可能更快)

我选择了第二个,我必须承认我曾考虑过使用“分组方式”和“顺序”,但认为它不起作用为什么不呢?;-)如果第二个更好,您是否与
explain
检查过?我只是想知道……我选择了第二个,我必须承认我曾考虑过使用分组方式和顺序,但认为它不起作用为什么不呢?;-)如果第二个更好,您是否与
explain
检查过?只是想知道…
SELECT week, count(*) FROM games WHERE week = (SELECT max(week) FROM games) GROUP BY week;