2013-05-02 67 views
0

我希望能够在不同的行ID上获得字段“count”的总和。DISTINCT行的字段总和

以下是我对它的查询。我们怎样才能做到这一点?

SELECT l.sid, l.Title, u.CompanyName, l.activation_date, l.expiration_date, COUNT(s.count), COUNT(DISTINCT a.id) 
      FROM listings l 
      LEFT JOIN statistics s 
      ON s.object_sid = l.sid 
      LEFT JOIN users u 
      ON u.sid = l.user_sid 
      LEFT JOIN applications a 
      ON a.listing_id = l.sid 
      WHERE l.sid = 6276 
      AND s.event = 'viewListing' 
      GROUP BY l.sid 
      LIMIT 10 
+0

你的问题是混淆我。你想做什么?同时显示你的表格结构。 – hims056 2013-05-02 07:52:39

+0

我希望能够得到一个'计数'字段的SUM(),确保该计数字段的ID是DISTINCT – 2013-05-02 07:53:41

+0

这是用于统计表的方式 – 2013-05-02 07:54:41

回答

0

如果通过“上市”和“应用程序”需要的列statistics.count的总和,那么你就需要GROUP BY都“挂牌”和“应用”:

SELECT 
    l.sid, l.Title, l.activation_date, l.expiration_date, 
    u.CompanyName, 
    SUM(s.count), COUNT(a.id) -- <= SUM(s.count) 
FROM listings l 
LEFT JOIN statistics s ON s.object_sid = l.sid 
LEFT JOIN users u ON u.sid = l.user_sid 
LEFT JOIN applications a ON a.listing_id = l.sid 
WHERE l.sid = 6276 
AND s.event = 'viewListing' 
GROUP BY l.sid, a.sid -- <= GROUP BY clause modified 
+0

感谢您的这一点,但这种方式我没有得到正确的应用程序“a”数。我们如何解决这个问题? – 2013-05-02 08:22:13

+0

@Jae什么是“正确”?请提供一个例子(样本数据,预期结果)。 – RandomSeed 2013-05-02 08:37:01