2017-07-28 37 views
0

我目前有一個SQL查詢,它返回每週在某個類別中創建的主題數量。彙總來自Discourse的數據

SELECT 
    COUNT(*) AS topic_count, 
    DATE_TRUNC('week', created_at) AS week 
FROM topics 
WHERE 
    topics.deleted_at IS NULL AND 
    topics.category_id = (
     SELECT id 
     FROM categories 
     WHERE categories.name LIKE 'Category Name' 
    ) 
GROUP BY DATE_TRUNC('week', created_at) 
ORDER BY week DESC 

如何更改此查詢,以便我可以在類別表中看到每個類別的topic_count?所得的列,我想看到的是:

  • 1類名稱的話題數
  • 類別2名主題數
  • ...
  • 種類n名稱話題數

回答

1

將分類名稱添加到查詢中,並按星期除外:

SELECT 
    categories.name, 
    DATE_TRUNC('week', created_at) AS week 
    COUNT(*) AS topic_count, 
FROM topics, 
    categories 
WHERE 
    topics.deleted_at IS NULL AND 
AND topics.category_id = categories.id 
AND categories.name LIKE 'Category Name' 
GROUP BY categories.name, DATE_TRUNC('week', created_at) 
ORDER BY categories.name, week DESC 
+0

在更正了一些語法錯誤並將'created_at'作用於主題列之後,這給我提供了我正在查找的數據,但不是我正在查找的格式。 – Richard

+0

你能澄清你需要的格式嗎? –

+0

我想我在我原來的問題中想看到的結果數據列中相當清楚。 – Richard