我有一个包含4列的表格: - PaymentID,患者ID,paymentMode,totalPayment
我试图找到患者支付的最高总支付金额和支付方式。
这就是我的尝试:
SELECT paymentMode, MAX(totalPayment) AS MAXIMUM_PAYMENT FROM Payments
Group By paymentMode
这会返回最大付款和付款方式,但问题是,它按付款方式分组,因此当我执行此查询时,我会得到2个答案。
以下是我得到的示例输出:
我想要的只是一个答案,只是意味着在考虑上面的图像时,我想只输出2行的记录,因为它比第一行的记录有更高的支付。是否可以向群组添加条件?
我如何解决这个问题?
感谢您的时间。
答案 0 :(得分:1)
你的桌子有四列。您想要最高付款模式吗?或者支付金额最大的模式?第一个就是这个(对于一个病人):
select p.*
from payments p
where patient = xxx
order by totalpayment desc
limit 1;
这将返回单个患者的值。
编辑:
如果您想要所有患者的最高付款模式,您可以使用此MySQL技巧:
select patient, max(payment) as maxpayment,
substring_index(group_concat(paymentmode), ',', 1) as maxpaymentmode
from payments p
group by patient
答案 1 :(得分:0)
在GROUP BY之后使用HAVING获取更多条件
答案 2 :(得分:0)
如果您想要患者支付的总额,您为什么要通过付款方式进行订购?
试试这个:
SELECT paymentMode, MAX(totalPayment) AS MAXIMUM_PAYMENT FROM Payments
Group By patientID