希望在客户表中具有每个客户的最高价格和日期-

时间:2019-04-06 16:45:40

标签: sql-server

http://www.sqlcourse2.com/items_ordered.html

上方是表“客户”的链接。 我想要每个客户的最大订单价格和购买日期 我在SQL Serer中尝试过这种方法,但未获得预期的答案 我的结果中有一个唯一的customerid,但我没有得到它

select customerid, max(price), order_date from items_ordered group by customerid, order_date order by customerid;

这是以上查询的结果,同时应该具有唯一的客户ID,并带有max(price)和订单日期。

10101   125.00  01-Jul-1999
10101   16.00   02-Jan-2000
10101   88.70   08-Mar-2000
10101   18.30   18-Aug-1999
10101   14.75   30-Dec-1999
10101   58.00   30-Jun-1999
10298   12.50   01-Apr-2000
10298   22.00   01-Dec-1999
10298   33.00   01-Jul-1999
10298   22.38   18-Mar-2000
10298   29.00   19-Sep-1999
10299   1250.00 06-Jul-1999
10299   38.00   18-Jan-2000
10315   8.00    02-Feb-2000
10330   28.00   01-Jan-2000
10330   16.75   19-Apr-2000
10330   28.00   30-Jun-1999
10339   4.50    27-Jul-1999
10410   89.22   28-Oct-1999
10410   192.50  30-Jan-2000
10413   32.00   19-Jan-2000
10438   6.75    01-Nov-1999
10438   8.50    02-Nov-1999
10438   79.99   18-Jan-2000
10439   25.50   14-Aug-1999
10439   88.00   18-Sep-1999
10449   45.00   01-Sep-1999
10449   180.79  13-Aug-1999
10449   380.50  15-Dec-1999
10449   40.00   19-Mar-2000
10449   280.00  22-Dec-1999
10449   4.50    29-Feb-2000

1 个答案:

答案 0 :(得分:0)

首先 <items>{ for $i in //item order by $i/name return $i }</items> 获得每个group by customerid的最大值price,然后将结果加入表格:

customerid

当然,如果包含最高价格的行多于1条,则所有行都将被提取。