2.7 每组第一 / 最后一条记录

SQL

WITH m AS(
    SELECT *, row_number() OVER(PARTITION BY year(OrderDate),month(OrderDate)) r 
    FROM Orders
    WHERE Amount>35500)
SELECT * 
FROM m 
WHERE r=1

SPL

A
1 =file(“Orders.ctx”).open().cursor@x(;Amount>35500)
2 =A1.groups(month@y(OrderDate):monthes;top(1;0) :tmp).conj(tmp)
3 =A2.run(OrderDate=date@o(OrderDate))


A2 top(1;0) 第二个参数用常数(一般用 0),表示返回每组第一条记录,如果要返回最后一条记录,则用 top(-1;0) 即可