年列を含むテーブルをクエリし、character varying[]
それらの年をカンマ区切りの年範囲の文字列として返そうとしています。年の範囲は、配列内に存在する連続した年によって決定され、連続していない年/年の範囲はコンマで区切る必要があります。
データ型がcharacter varying[]
むしろでinteger[]
ある理由は、いくつかの値ALL
に年のリストの代わりに含まれているためです。これらの結果は省略できます。
これまでのところ、どこから始めればよいのかわからないため、問題に取り組むのはほとんど運がありませんでした。
誰かが私にガイダンスを与えたり、課題などを解決する方法の有用な例を提供したりできますか?
years_table
例
+=========+============================+
| id | years |
| integer | character varying[] |
+=========+============================+
| 1 | {ALL} |
| 2 | {1999,2000,2010,2011,2012} |
| 3 | {1990,1991,2007} |
+---------+----------------------------+
出力目標:
SQL クエリの例:
SELECT id, [year concat logic] AS year_ranges
FROM years_table WHERE 'ALL' NOT IN years
結果:
+====+======================+
| id | year_ranges |
+====+======================+
| 2 | 1999-2000, 2010-2012 |
| 3 | 1990-1991, 2007 |
+----+----------------------+