选定的列不在分组中

时间:2015-10-02 23:59:52

标签: sql tsql

我是关于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

但我不想按姓氏和地址列分组

1 个答案:

答案 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;