0

私はこのクエリを持っています..

SELECT DATE_FORMAT(utcdt,GET_FORMAT(DATE,'ISO')) as utcdt, 
                HOUR(utcdt) as hour, 
                country,
                sum(impressions) as impressions 
                FROM rtb_impressions where campaign_id='cid2204184260'
                GROUP BY utcdt, hour, country

これらは結果です.....

{'impressions': Decimal('1'), 'country': 'US', 'hour': 10L, 'utcdt': '2012-10-01'}
{'impressions': Decimal('40000'), 'country': 'US', 'hour': 9L, 'utcdt': '2012-10-02'}
{'impressions': Decimal('20000'), 'country': 'US', 'hour': 9L, 'utcdt': '2012-10-02'}

2 つの行を取得する必要があるのに、なぜ 3 つの行を取得したのですか? 012-10-02 は合計されているはずです。

ありがとう

4

2 に答える 2

2

間違った値でグループ化しているため、それを取得しています。代わりにこれを試してください:

SELECT DATE_FORMAT(utcdt,GET_FORMAT(DATE,'ISO')) as utcdt, 
            HOUR(utcdt) as hour, 
            country,
            sum(impressions) as impressions 
            FROM rtb_impressions where campaign_id='cid2204184260'
            GROUP BY DATE_FORMAT(utcdt,GET_FORMAT(DATE,'ISO')), hour, country
于 2012-10-05T11:40:17.960 に答える
1

代わりにこれを試してください:

SELECT DATE_FORMAT(utcdt,GET_FORMAT(DATE,'ISO')) as utcdt, 
       HOUR(utcdt) as hour, 
       country,
       sum(impressions) as impressions 
FROM rtb_impressions
WHERE campaign_id='cid2204184260'
GROUP BY DATE_FORMAT(utcdt,GET_FORMAT(DATE,'ISO')), hour, country

GROUP BYフォーマットされた値で結果をグループ化する場合は、句に同じフォーマットを適用する必要があります。

于 2012-10-05T11:40:05.217 に答える