我是关于SQL的问题。例如,我有一个像这样的表
Name Surname Price Adress
john smith 100 adress123
alex martin 200 adress2
john smith 300 adress123
我想将这些记录分组,其名称相同。此记录的价格必须为sum()
一般来说,我写这样的查询
SELECT SUM(PRICE),NAME AS TOTAL_PRICE FROM TABLE1 A GROUP BY A.NAME
但是当我想选择其他列时,我应该像这样分组
... group by A.NAME,A.SURNAME,A.ADRESS
我想要选择此列而不使用group by。我想问一下,在没有按条件分组的情况下选择其他columsn的最佳方法是什么?
我正在等待这个结果
200 ALEX MARTIN adress2
210 JOHN SMITH adress123
但我不想按姓氏和地址列分组
答案 0 :(得分:1)
您可以使用MIN()
或MAX()
从其他列中获取任意值:
select sum(price) as total_price, name, max(surname) as surname,
max(address) as address
from table1 a
group by a.name;