2013-09-05 39 views

回答

1

嘗試

select case when v2.page is not null 
       then v1.page 
       else 'other' 
     end, 
     count(*) 
from visits v1 
left join 
(
    select page, count(*) as pcount 
    from visits 
    group by page 
    order by pcount desc 
    limit 5 
) v2 on v1.page = v2.page 
group by case when v2.page is not null 
       then v1.page 
       else 'other' 
     end 
+0

我得到一個錯誤:「#1064 - 你必須您的SQL語法錯誤;請查看與您的MySQL服務器版本相對應的手冊,以便在訪問中使用靠近'*)的正確語法v1離開連接(選擇頁面,從第5行「 – Sultanen

+0

」嘗試count「(*)」或「count(v1.some_column_of_vists)」而不是count(v1。*)),將count(*)作爲pcount。 –

+0

作品像一個魅力,謝謝=) – Sultanen

0

有運行此當是一個SQL小提琴 http://sqlfiddle.com/#!2/8b116/4

SQL左連接上W3Schools的 http://www.w3schools.com/sql/sql_join_left.asp

SELECT CASE WHEN v2.page IS NOT NULL 
    THEN v1.page 
    ELSE 'other' 
    END AS page, 
    count(*) AS count 
FROM visits v1 
LEFT JOIN 
(
    SELECT page, COUNT(*) AS pcount 
    FROM visits 
    GROUP BY page 
    ORDER BY pcount DESC 
    LIMIT 5 
) v2 ON v1.page = v2.page 
GROUP BY page 
ORDER BY count DESC 
相關問題