簡體   English   中英

總結和分組MySQL中的多列

[英]summation and grouping multiple columns in mysql

我在MYSQL中有一張twitter數據表,其中is_retweet列,is_reply列由二進制值組成,其中1 =是,0 =否。 如果某用戶一天轉發了多次推文,則該用戶在該天的轉發推文中將有多行。

account_id,    datetime,        user_screenname, is_retweet, is_reply,followers_count
'9',      '2008-06-11 20:06:35','Access2',        '1',         '0',     '811' 
'9',      '2008-06-11 23:06:35','Access2',        '1',         '1',     '812' 
'9',      '2008-06-12 20:01:21','Access2',        '0',         '1',     '813' 
'7',      '2008-06-11 17:01:00','actingparty',    '1',         '1',     '2000' 

我應該如何構造我的SQL視圖以得到如下表所示的結果,在該表中我可以按用戶名總結任意一天的轉發和回復? IE瀏覽器我想做的是:

-對於任何一天的用戶名,轉發,回復和最高關注者總數是多少?

account_id,    date,        user_screenname, sum_retweet, sum_reply, followers_count
'9',         '2008-06-11',        'Access2',        '2',         '0',     '812' 
'9',         '2008-06-12',        'Access2',        '0',         '1',     '813' 

這是我的SQL代碼:

CREATE VIEW `tweet_sum` AS
    select 
        `tweets`.`account_id` AS `account_id`,
        `tweets`.`user_screenname` AS `user_screenname`,
        CAST(`tweets`.`datetime` as date) AS `period`,
        MAX(`tweets`.`followers_count`) AS `followers_count`,
        SUM(`tweets`.`is_reply`) AS `sum_reply`,
        SUM(`tweets`.`is_retweet`) AS `sum_retweet`,

    from
        `tweets`
    group by cast(`tweets`.`datetime` as date)

但是我的數據似乎與我想要的不匹配,因為sql正在匯總當天所有用戶的轉發。 如何將日期和用戶名分組?

謝謝! Ĵ

** * ** * 編輯 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ***


我想擴大這個問題。 假設我還有一列Reach(等於followers_count乘以大於零的列數(is_retweet,is_reply)。)例如,在下面的輸出表中,sum_retweet和sum_reply列均大於零2008年6月11日,因此我需要對覆蓋率列采用followers_count * 2 = 1624。

我如何構造我的sql代碼來做到這一點?

account_id,    date,        user_screenname, sum_retweet, sum_reply, followers_count, **Reach** 
'9',         '2008-06-11',        'Access2',        '2',         '1',     '812',      '1624'
'9',         '2008-06-12',        'Access2',        '0',         '1',     '813',       '813'

只需將GROUP BY更改為

group by
   `tweets`.`account_id`,
   `tweets`.`user_screenname`,
   cast(`tweets`.`datetime` as date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM