选择Distinct显示同一记录的多个值

时间:2015-12-03 19:31:47

标签: sql teradata

我有以下代码,我希望在一段时间内看到UPC的销售情况。如您所见,我有Select Distinct开始,但它仍然显示同一UPC的多个条目。

我希望它显示UPC,然后总结该UPC的值,如果有多个UPC。 有什么见解吗?

我有以下代码。 我发布了“Group By”评论,因为每次我尝试按UPC分组时,它都会给我一个错误,上面写着“选定的非聚合值必须是相关组的一部分。”

SELECT DISTINCT ir.region, 
                ir.upc, 
                ir.item_long_description, 
                ir.team_name, 
                ir.subteam_name, 
                brand, 
                p.sale_units, 
                p.sale_value 
FROM   prd_sales_cost_summary_v p 
       JOIN item_region_v ir 
         ON p.upc = ir.upc 
            AND p.pos_dept = ir.pos_dept --AND p.store_number = ir.store_number 
WHERE  ir.subteam_name = 'Frozen' 
       AND 
       --prd_idnt BETWEEN 201601 AND 201602 AND 
       prd_idnt = 201601 
       AND 
       --Change the region if needed 
       ir.region = 'RM' 
--GROUP BY 2 
ORDER  BY p.sale_units DESC 

1 个答案:

答案 0 :(得分:3)

  

“所选的非聚合值必须是关联组的一部分。”

这意味着如果您在SELECT列表中放置一个字段,则必须将其放在该组中。

所以

 SELECT fieldA, fieldB, fieldC, SUM(*)
 FROM YourTable
 GROUP BY fieldA, fieldB, fieldC

另请注意,您的选择没有任何agreagation函数COUNT() SUM() AVG()