次の質問があります
SELECT Count(*) as Total_Count, Col1
FROM Table1
GROUP BY Col1
ORDER BY Total_Count DESC;
Col1 を拡大したいです。Col1 のデータは次の形式です。
text-abc1
txt4-abcde22
tex6-abc2
text4-imp4
text-efg1
txt-efg43
グループ化したい
After the first `-`, any first three/four/five characters match
この例では、最初の 3 文字が一致する場合、出力は次のようになります。
Total_Count Col1
3 abc
1 imp
2 efg
これを実現する他の方法はありますか?
ベストアンサー1
正規表現は必要なく、文字列操作だけが必要な場合があります。3 文字の場合:
SELECT count(*) AS Total_Count,
SUBSTRING(Col1 FROM POSITION('-' in Col1)+1 FOR 3) AS Col1_zoomed
FROM Table1
GROUP BY Col1_zoomed
ORDER BY Total_Count DESC