MySQL: 集計結果からグループ化された行の合計を取得する
P粉978742405
P粉978742405 2024-02-26 23:21:28
1
1
885

各国のユーザーの訪問数に関する統計があるとします:

クエリは次のとおりです:

###選択する country_users.user_id、 国名、 count(countries_users.id) を count_visit として 国ユーザーから country.id = country_users.user_id で国を左結合します WHERE 国ユーザー.ユーザー ID IN (111, ...) GROUP BY country_user.user_id、countrys.id
結果は次のとおりです:

user_id | 国 | count_visit ---------------------------------- 111 | ノルウェー | 5 111 | 日本 | 2 ... | ... | ...
通常、これをコード レベルで行います。ただし、何らかの愚かな理由により、国に関係なく、ユーザーによる訪問の合計数を示す追加の列を結果セットに追加したいと考えています。 

したがって、結果は次のようになります:

user_id | 国 | count_visit | total_visit -------------------------------------------------- - 111 | ノルウェー | 5 | 7 111 | 日本 | 2 | 7 ... | ... | ... | ...
            
P粉978742405
P粉978742405

全員に返信(1)
P粉819937486

may you need a subquery

SELECT 
cu.user_id,
c.name AS countries,
count(cu.id) AS count_visit,
visitall.total_count_visit AS overall_visit
FROM countries_users cu
LEFT JOIN countries c ON c.id = cu.user_id
LEFT JOIN (
    SELECT user_id, SUM(count(id)) AS total_count_visit
    FROM countries_users
    WHERE user_id IN (111, ...) 
    GROUP BY user_id
) AS visitall ON cu.user_id = visitall.user_id
WHERE cu.user_id IN (111, ...)  
GROUP BY cu.user_id, c.id, visitall.total_count_visit
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート