如何获取每个客户的最高价值订单?
select num, max(sum(paid*quantity))
from orders join
pizza
using (order#)
group by customer#;
表
num orderN price
-------- --- -------
1 109 30
1 118 25
3 101 30
3 115 27
4 107 23
5 100 17
5 129 16
输出要求
num Pnum price
-------- --- -------
1 109 30
3 101 30
4 107 23
5 100 17
答案 0 :(得分:0)
您要选择每python: 3.6.8 |Anaconda custom (64-bit)| (default, Dec 30 2018, 18:50:55) [MSC v.1915 64 bit (AMD64)]
pandas: 0.24.0
zlib : 1.2.11
c0 c1
0 a c
1 b d
df.csv, default terminator : b'c0,c1\r\na,c\r\nb,d\r\n'
df.csv.gz, default terminator: b'c0,c1\r\r\na,c\r\r\nb,d\r\r\n'
df.csv, '\n' terminator : b'c0,c1\na,c\nb,d\n'
df.csv.gz, '\n' terminator : b'c0,c1\r\na,c\r\nb,d\r\n'
组中price
最高的记录。
如果您的RDBMS支持窗口功能,那么直接使用num
即可:
ROW_NUMBER()
否则,您可以采用以下方法,该方法将SELECT num, pnum, price
FROM (
SELECT t.*, ROW_NUMBER OVER(PARTITION BY num ORDER BY price DESC) rn
FROM mytable t
) x
WHERE rn = 1
条件与相关子查询一起使用,以确保将记录与当前NOT EXISTS
的最高价格相结合:>
num