9

私はSQLクエリが本当に苦手ですが、学んでいるので、この質問を許してください。

これが私の現在のクエリです:

SELECT TIMESTAMP, SUM( electricity ) AS electricity,  `siteID` 
FROM table
WHERE (
MONTH(  `TimeStamp` ) =10)
GROUP BY siteID

私のテーブルは次のようになります。

#########################################
# Id # SiteID # TimeStamp  # Elecricity #
# 0  # 100    # 10/08/2012 # 50         #
# 1  # 98     # 10/08/2012 # 32         #
# 2  # 100    # 10/09/2012 # 96         #
# 3  # 94     # 10/09/2012 # 25         #
# 4  # 100    # 10/10/2012 # 100        #
# 5  # 100    # 10/11/2012 # 55         #
#########################################

私がやろうとしているのは、各サイトの各月のすべての日を合計して、サイトと月ごとに 1 つの回答を得ることです。したがって、この例では、クエリはサイト ID 100 の電力値の合計を返す必要があります。これは、サイト ID 98 と 94 の場合と同じで、すべてが 10 月にあるためです。

ありがとう

4

1 に答える 1

14
SELECT month('TIMESTAMP'), SUM( electricity ) AS electricity,  `siteID` 
FROM table
WHERE (
MONTH(  `TimeStamp` ) =10)
GROUP BY siteID, month('TIMESTAMP')

これは機能します。考えなければならないことの 1 つは、月は一意ではないということです。この場合、2012 年 10 月は 2013 年 10 月と同じです。年用に別の列を追加することもできます。

于 2013-08-06T18:24:20.520 に答える