如果我使用带有关键字group by的聚合函数,如何获得更多列?

时间:2014-07-11 14:58:55

标签: mysql sql sql-server

我在数据库中有三个表

tblcustomer:

  1. cust id pk

  2. FNAME

  3. L-NAME

  4. 城市

  5. tblsales

    1. salesid pk
    2. productid foreign key
    3. cid外键
    4. saleprice
    5. salesdate
    6. tblproduct

      1. productid pk
      2. 产品名
      3. recommandedprice
      4. 类别
      5. 我想解决这个问题:

        为那些拥有的客户返回Product Category和平均Sale Price 购买了两种或更多产品

        我试过这个:但是有错误......

        select 
            AVG(Salesprice) ,FirstName 
        from tblProducts 
        inner join tblSales  on tblProducts.tid = tblSales.ProductId 
        inner join tblCustomers on tblCustomers.CustomerID = tblSales.CustomerID 
        group by FirstName
        

1 个答案:

答案 0 :(得分:1)

不知道你的问题是什么或数据是什么样的,这不容易回答......我认为你想要的(假设你的查询的第一部分是正确的)是这个... < / p>

SELECT 
    AVG(Salesprice) ,FirstName 
FROM tblProducts 
JOIN tblSales  on tblProducts.tid = tblSales.ProductId 
JOIN tblCustomers on tblCustomers.CustomerID = tblSales.CustomerID 
GROUP BY FirstName
HAVING COUNT(cust_id) > 1

我添加了一个HAVING子句,用于检查表中客户是否有多条记录。