2016-12-14 62 views
0

BigQueryで合理的な問題が発生しています。基本的には、StandardSQLを使用している間に、完全なグループに問題があります。私はこのようなルックスを実現しようとしていますBigQuery Group ByおよびIf式

SELECT 
    FORMAT_DATETIME('%Y-%m-%d', DATETIME(tstmp)) AS f_timestamp, 
    IF(tstmp < '2016-11-01 00:00:00', 10, 15) AS rate 
FROM 
    `table` 
GROUP BY 
    f_timestamp 

結果:私は、次のクエリを持って

f_timestamp   rate  
2016-11-02   15 
2016-10-30   10 

しかし、BigQueryはIF文であるtstmpフィールド、文句を言う:

SELECT list expression references column tstmp which is neither grouped nor aggregated at

これをGroup Byに含めると、tiにグループ化されるため、全く異なる結果になります私が必要とするものではない

どのように結果を達成するためのアイデアをしたいですか?

ありがとうございます!

答えて

1

はトリックをした

SELECT 
    FORMAT_DATETIME('%Y-%m-%d', DATETIME(tstmp)) AS f_timestamp, 
    MAX(IF(tstmp < '2016-11-01 00:00:00', 10, 15)) AS rate 
FROM 
    `table` 
GROUP BY 
    f_timestamp 
+0

の下に試してみてください。乾杯! – vulkoingim