2017-04-18 2 views
0

この偉大なarticleでは、YearをDecadeに変換する方法を見つけましたが、それは私にはあまりにも冗長に見えます!BigQuery:YearをDecadeに変換するには?

これを行うより良い方法はありますか?年から十年 "を抽出" を

#standardSQL 
WITH data AS (
    SELECT '1921' AS YEAR UNION ALL 
    SELECT '1932' UNION ALL 
    SELECT '1943' UNION ALL 
    SELECT '1954' UNION ALL 
    SELECT '1985' UNION ALL 
    SELECT '2006' UNION ALL 
    SELECT '2017' UNION ALL 
    SELECT '2018' 
) 
SELECT 
    YEAR, 
    CASE 
    WHEN YEAR LIKE "192%" THEN "20S" 
    WHEN YEAR LIKE "193%" THEN "30S" 
    WHEN YEAR LIKE "194%" THEN "40S" 
    WHEN YEAR LIKE "195%" THEN "50S" 
    WHEN YEAR LIKE "196%" THEN "60S" 
    WHEN YEAR LIKE "197%" THEN "70S" 
    WHEN YEAR LIKE "198%" THEN "80S" 
    WHEN YEAR LIKE "199%" THEN "90S" 
    WHEN YEAR LIKE "200%" THEN "2000S" 
    WHEN YEAR LIKE "201%" THEN "2010S" 
    END AS DECADES 
FROM data 
-- ORDER BY YEAR 

答えて

1

からREGEXP_REPLACE機能は

INT64` `にキャストした後、` TRUNC`を使用しないのはなぜ
#standardSQL 
WITH data AS (
    SELECT '1921' AS YEAR UNION ALL 
    SELECT '1932' UNION ALL 
    SELECT '1943' UNION ALL 
    SELECT '1954' UNION ALL 
    SELECT '1985' UNION ALL 
    SELECT '2006' UNION ALL 
    SELECT '2017' UNION ALL 
    SELECT '2028' 
) 
SELECT 
    YEAR, 
    REGEXP_REPLACE(YEAR, r'(?:19)(\d)\d|(20\d)\d', '\\1\\20s') AS DECADES 
FROM data 
-- ORDER BY YEAR 
+0

以下の例のように使用することができますか? –

+0

確かに、どうしてですか?それはオプションです。しかし、私が答える前にそれを "評価"したとき、私は記事の中とまったく同じ結果を得るのがまだちょっと気になりましたが、それは好みの問題かもしれません:o) –

関連する問題