正如标题所示,我想选择用a组成的每组行的第一行GROUP BY.
具体来说,如果我有一个purchases看起来像这样的表:
SELECT * FROM purchases;
Run Code Online (Sandbox Code Playgroud)
我的输出:
id | customer | total ---+----------+------ 1 | Joe | 5 2 | Sally | 3 3 | Joe | 2 4 | Sally | 1
我想查询每个产品id的最大购买量(total)customer.像这样的东西:
SELECT FIRST(id), customer, FIRST(total)
FROM purchases
GROUP BY customer
ORDER BY total DESC;
Run Code Online (Sandbox Code Playgroud)
预期产出:
FIRST(id) | customer | FIRST(total)
----------+----------+-------------
1 | Joe | 5
2 | Sally | 3
分页来自数据库的数据时,您需要知道将有多少页面呈现页面跳转控件.
目前我通过运行查询两次,一次包装count()以确定总结果,第二次应用限制以获取当前页面所需的结果.
这似乎效率低下.有没有更好的方法来确定在LIMIT应用之前会返回多少结果?
我正在使用PHP和Postgres.
我需要查询每分钟直到该分钟的总行数.
到目前为止我能达到的最好成绩并没有成功.它返回每分钟的计数,而不是每分钟的总计数:
SELECT COUNT(id) AS count
, EXTRACT(hour from "when") AS hour
, EXTRACT(minute from "when") AS minute
FROM mytable
GROUP BY hour, minute
Run Code Online (Sandbox Code Playgroud) sql postgresql datetime aggregate-functions window-functions