hakata_ex_cost_db=# \e 
 start_seq | end_seq | line_name
 -----------+---------+----------------------------------- 
 1 | 6 | Dummy Railway Line JR鹿児島本線 
 7 | 7 | Dummy Railway Line JR篠栗線 
 8 | 10 | Dummy Railway Line 地下鉄航空線 
 12 | 12 | Dummy Bus Line 天神エリア限定バス 
 という結果が出てきました。start_seq と end_seq が同じ番号になっているところがありますが、これは、どのように解釈すれば良いでしょうか
SELECT seq, node, edge, cost, agg_cost FROM pgr_dijkstra('SELECT gid as id, source, target,length_m as cost FROM ways',66619, 92554, false);
WITH path AS ( SELECT seq, node, edge, cost, agg_cost FROM pgr_dijkstra( 'SELECT gid as id, source, target, cost, reverse_cost FROM ways', 66619, 92554 ) ), full_path AS ( SELECT path.seq, path.node, path.edge, path.cost, path.agg_cost, ways.length_m AS length_m, ways.name AS line_name FROM path LEFT JOIN ways ON path.edge = ways.gid ) SELECT seq, node, edge, cost, agg_cost, length_m, line_name FROM full_path ORDER BY seq;
----- ダイクストラ66619, 92554 の結果の一覧表示
WITH path AS (
    SELECT 
        seq, 
        edge, 
        b.name AS line_name,
        b.the_geom
    FROM 
        pgr_dijkstra(
            'SELECT gid as id, source, target, cost, reverse_cost FROM ways',
            66619, 92554
        ) a
    INNER JOIN 
        ways b 
    ON 
        a.edge = b.gid
    ORDER BY seq
)
SELECT 
    MIN(seq) AS start_seq,
    MAX(seq) AS end_seq,
    line_name
FROM 
    path
WHERE 
    line_name LIKE '%Dummy Railway Line%'
    OR line_name LIKE '%Dummy Bus Line%'
GROUP BY 
    line_name
ORDER BY 
    start_seq;
以下のSQL文で、"Dummy Rail Line" と "Dummy Bus Line" に該当する start_seq と end_seq を取得できます。
SQL文
WITH path AS (
    SELECT 
        seq, 
        edge, 
        b.name AS line_name
    FROM 
        pgr_dijkstra(
            'SELECT gid as id, source, target, cost, reverse_cost FROM ways',
            66619, 92554
        ) a
    INNER JOIN 
        ways b 
    ON 
        a.edge = b.gid
    ORDER BY seq
)
SELECT 
    MIN(seq) AS start_seq,
    MAX(seq) AS end_seq,
    CASE 
        WHEN line_name LIKE '%Dummy Railway Line%' THEN 'Dummy Rail Line'
        WHEN line_name LIKE '%Dummy Bus Line%' THEN 'Dummy Bus Line'
    END AS line_type
FROM 
    path
WHERE 
    line_name LIKE '%Dummy Railway Line%'
    OR line_name LIKE '%Dummy Bus Line%'
GROUP BY 
    CASE 
        WHEN line_name LIKE '%Dummy Railway Line%' THEN 'Dummy Rail Line'
        WHEN line_name LIKE '%Dummy Bus Line%' THEN 'Dummy Bus Line'
    END
ORDER BY 
    start_seq;
 
 
SQL文のポイント
WITH句で経路情報を取得:
pgr_dijkstra の結果に ways.name を結合して、全経路のエッジ情報を準備します。 
 
CASE文で分類:
line_name に基づき、Dummy Rail Line と Dummy Bus Line の2種類に分類します。 
- この処理により、元の路線名が詳細でも、2つのカテゴリに整理されます。
 
 
MIN と MAX で開始と終了を取得:
- 経路順序 (
seq) の最小値 (start_seq) と最大値 (end_seq) を取得します。 
 
- グループ化:
CASE文で分類された路線タイプごとにグループ化 (GROUP BY) します。 
 
- ソート順序:
 
結果例
以下のような結果が得られます:
| start_seq | 
end_seq | 
line_type | 
| 1 | 
10 | 
Dummy Rail Line | 
| 12 | 
15 | 
Dummy Bus Line | 
注意事項
- 必要に応じて、
WHERE 条件や LIKE 演算子を調整してください。 
- 出力をさらに簡潔にしたい場合や、追加情報が必要な場合はお知らせください。適切に対応します。