sql >> データベース >  >> RDS >> Mysql

アイテム数がゼロの日付の値を含むMYSQL

    答えを訂正するために編集:

    http://sqlfiddle.com/#!2/ae665/4

    SELECT date_format(datefield,'%Y-%m-%d') AS DATE, IFNULL(counts, 0), item_id FROM 
        dates a
    LEFT JOIN 
        (SELECT COUNT(*) as counts, purchase_date,user_id,item_id 
         FROM items_purchased 
         WHERE item_id=1
         GROUP BY date(purchase_date),item_id )r 
    ON date(a.datefield) = date(r.purchase_date) ;
    

    上記のクエリは仮定に基づいています:

    @timpeterson(OP)による更新@Selに大いに感謝します。 これが私が興味を持っている両方のクエリを示すsqlfiddlesです:

    1. 1人のユーザーが所有するすべてのアイテムの1日あたりの購入数(例:user_id=11 ): http://sqlfiddle.com/#!2/76c00/3
    2. item_id=1の1日あたりの購入 これはuser_id=11が所有しています : http://sqlfiddle.com/#!2/76c00/1

    リンクが何らかの理由で壊れた場合の2番目のSQLコードは次のとおりです。

    SELECT date_format(datefield,'%Y-%m-%d') AS DATE, 
    IFNULL(countItem, 0), item_id
    FROM dates a
    LEFT JOIN 
    (SELECT countItem, purchase_date,i.user_id,p.item_id FROM (
       SELECT count(*) as countItem, purchase_date,user_id,item_id 
       FROM items_purchased 
       GROUP BY date(purchase_date),item_id
       ) p 
     inner join items i
     on i.item_id=p.item_id
     WHERE p.item_id='1' and i.user_id='11' //just get rid of "p.item_id='1'" to produce the 1st query result
    )r 
    ON date(a.datefield) = date(r.purchase_date);
    



    1. JSON文字列を格納するための最適なSQLデータ型は何ですか?

    2. MapReduceがHadoopでどのように機能するか

    3. PostgreSQL:ダンプからのデータベースの復元-構文エラー

    4. ASP.NETMVC5-ユーザーをOracleデータベースに保持する