【发布时间】:2012-04-13 09:51:12
【问题描述】:
我在过去 2 小时内读到的所有关于 SQL Server 和联接的内容都快要爆炸了。
tbl_customers
-------------
IPaddress
CustomerID
tbl_purchases
-------------
OrderID (pkey)
CustomerID
OrderTotal
我想获取每个 IP 地址的总购买量。 tbl_customers 表中有更多列,因此存在重复的 (IPaddress, CustomerID) 行。我使用了以下查询:
SELECT DISTINCT IPaddress, SUM(OrderTotal) FROM tbl_customers a
INNER JOIN tbl_purchases b ON a.CustomerID = b.CustomerID
GROUP BY IPaddress;
但它会从 tbl_customers 检索重复的行,并导致 sum 函数多次计算同一购买。我究竟做错了什么?效率并不是真正的问题,因为我正在处理低于 10K 的记录。
【问题讨论】:
-
也许 IP 地址应该在 tbl_purchases 中。
标签: sql-server join duplicates sum