智慧地铁大屏 · 19 个组件完整操作手册

所以下面每个组件都要新建一个 SQL 数据集,不是一个数据集做所有图。

1. 通用套路(19 个组件都照这个做)

1.1 第 1 步:建 SQL 数据集

text 复制代码
公共数据  →  智能地铁数据  →  【新建数据集】  →  选「SQL 数据集」
    ↓
数据连接:zhihuiditie
表    名:按下面每个组件里写的填(比如 ads_in_station_day_top)
SQL 语句:把下面框里的整段复制粘贴进去
    ↓
点右上角【预览】 → 确认右边出数据了 → 点【确定】

1.2 第 2 步:新建组件

text 复制代码
我的分析  →  智慧地铁可视化大屏  →  点右上角【编辑】
    ↓
左下角  【+ 新建组件】  →  选择刚建好的那个数据集  →  确定

1.3 第 3 步:拖字段出图

text 复制代码
① 上方【图表类型】里选我指定的图(条形图/柱状图/环形图/雷达图/指标卡)
② 左侧字段列表,把我写的「纵轴字段」拖到【纵轴】槽位
③ 再把我写的「横轴字段」拖到【横轴】槽位
④ 双击标题改成我写的组件名
⑤ 右上角【保存】

注意:所有 SQL 里都已经写了 WHERE dt = '20180901',不用你再去筛选器里筛日期。每段 SQL 末尾都有 ORDER BY ... DESC(排行榜必须有),不要删。

2. 组件 1:进站人次排行榜 TOP10

数据集名:ads_in_station_day_top

sql 复制代码
SELECT
    in_station   AS 进站站点,
    count(1)     AS 进站人次
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND in_station != '""'
GROUP BY in_station
ORDER BY 进站人次 DESC
LIMIT 10
图表类型 纵轴字段 横轴字段
条形图 进站站点 进站人次

做完长这样:五和 9,500 → 布吉 8,702 → 丹竹头 7,577 → 民治 7,450 → 龙华 6,040 → 下水径 5,760 → 清湖 5,727 → 大芬 5,031 → 固戍 5,013 → 长龙 4,907。

3. 组件 2:出站人次排行榜 TOP10

数据集名:ads_out_station_day_top

sql 复制代码
SELECT
    out_station  AS 出站站点,
    count(1)     AS 总人数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND out_station != '""'
GROUP BY out_station
ORDER BY 总人数 DESC
LIMIT 10
图表类型 纵轴字段 横轴字段
条形图 出站站点 总人数

做完长这样:深圳北 8,312 → 罗湖站 8,016 → 福田口岸 6,189 → 华强北 5,545 → 老街 5,329 → 会展中心站 5,027 → 南山站 4,894 → 兴东 4,748 → 五和 4,722 → 福田 4,609。

4. 组件 3:进出站人次排行榜

数据集名:ads_in_out_station_day_top

sql 复制代码
SELECT
    station                    AS 站点,
    sum(in_cnt)                AS 进站人次,
    sum(out_cnt)               AS 出站人次,
    sum(in_cnt) + sum(out_cnt) AS 总人次
FROM
(
    SELECT in_station  AS station, 1 AS in_cnt, 0 AS out_cnt
    FROM dws.dws_take_subway_detail
    WHERE dt = '20180901' AND in_station != '""'
    UNION ALL
    SELECT out_station AS station, 0 AS in_cnt, 1 AS out_cnt
    FROM dws.dws_take_subway_detail
    WHERE dt = '20180901' AND out_station != '""'
)
GROUP BY station
ORDER BY 总人次 DESC
LIMIT 20
图表类型 纵轴字段 横轴字段
柱状图 站点 进站人次 和 出站人次(两个都拖进去,会并排显示)

5. 组件 4:线路单日运输乘客总次数排行榜

数据集名:ads_line_send_passengers_day_top

sql 复制代码
SELECT
    in_company_name AS 线路,
    count(1)        AS 乘客数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND in_company_name != '""'
GROUP BY in_company_name
ORDER BY 乘客数 DESC
图表类型 纵轴字段 横轴字段
柱状图 线路 乘客数

对数字:地铁五号线 82,947 → 三号线 68,945 → 一号线 49,995 → 四号线 38,428。

6. 组件 5:乘客通勤时间平均值 / min

数据集名:ads_all_passengers_single_ride_spend_time_average

sql 复制代码
SELECT
    round(avg(take_time), 2) AS 平均通勤分钟,
    count(1)                 AS 样本数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
图表类型 指标字段
指标卡 平均通勤分钟

对数字:应该显示 29.86。

7. 组件 6:线路单程直达乘客耗时平均值排行榜

数据集名:ads_line_single_ride_average_time_day_top

sql 复制代码
SELECT
    in_company_name          AS 线路,
    round(avg(take_time), 2) AS 平均耗时,
    count(1)                 AS 次数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND conn_mark = 1
GROUP BY in_company_name
ORDER BY 平均耗时 DESC
图表类型 颜色字段 角度/指标字段
环形图 线路 平均耗时

对数字:十一号线 24.01 → 三号线 23.72 → 一号线 21.29 → 五号线 20.27。

8. 组件 7:每日运输乘客最多的车站区间排行榜

数据集名:ads_stations_send_passengers_day_top

sql 复制代码
SELECT
    if(in_station > out_station,
       concat(in_station, '-', out_station),
       concat(out_station, '-', in_station)) AS 乘车区间,
    count(1)                                 AS 人流量
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND in_station  != out_station
  AND in_station  != '""'
  AND out_station != '""'
GROUP BY 乘车区间
ORDER BY 人流量 DESC
LIMIT 20
图表类型 纵轴字段 横轴字段
柱状图 乘车区间 人流量

对数字:赤尾-华强北 1,908 → 福田口岸-福民 1,273 → 深圳北-五和 1,051。

9. 组件 8:站点进站闸机数(雷达图)

数据集名:ads_station_in_equ_num_top

sql 复制代码
SELECT
    in_station           AS 站点,
    uniqExact(in_equ_no) AS 闸机数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND in_station != '""'
GROUP BY in_station
ORDER BY 闸机数 DESC
LIMIT 10
图表类型 维度字段 指标字段
雷达图 站点 闸机数

对数字:华强北 24 → 福田 22 → 老街 22 → 市民中心 21 → 少年宫 20。

10. 组件 9:单日从上车到下车间隔时间排行榜

数据集名:ads_passenger_spend_time_day_top

sql 复制代码
SELECT
    card_no             AS 卡号,
    in_station          AS 进站,
    out_station         AS 出站,
    round(take_time, 2) AS 通勤分钟
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
ORDER BY take_time DESC
LIMIT 10
图表类型 颜色字段 标签字段
气泡图 卡号 通勤分钟

对数字:BEBJGJFFA 下水径→红岭北 285.38 → FFGCDFHGJ 龙华→龙华 280.30。

11. 组件 10:站点出站闸机数(雷达图)

数据集名:ads_station_out_equ_num_top

sql 复制代码
SELECT
    out_station           AS 站点,
    uniqExact(out_equ_no) AS 闸机数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND out_station != '""'
GROUP BY out_station
ORDER BY 闸机数 DESC
LIMIT 10
图表类型 维度字段 指标字段
雷达图 站点 闸机数

12. 组件 11:线路进站闸机数(饼图)

数据集名:ads_line_in_equ_num_top

sql 复制代码
SELECT
    in_company_name       AS 线路,
    uniqExact(in_equ_no)  AS 闸机数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND in_company_name != '""'
GROUP BY in_company_name
ORDER BY 闸机数 DESC
图表类型 颜色字段 角度/指标字段
饼图 线路 闸机数

13. 组件 12:换乘耗时最久的乘客 TOP10

数据集名:ads_conn_spend_time_top

sql 复制代码
SELECT
    card_no             AS 卡号,
    in_station          AS 进站,
    out_station         AS 出站,
    round(take_time, 2) AS 通勤分钟
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND conn_mark = 0
ORDER BY take_time DESC
LIMIT 10
图表类型 颜色字段 标签字段
气泡图 卡号 通勤分钟

14. 组件 13:线路出站闸机数(饼图)

数据集名:ads_line_out_equ_num_top

sql 复制代码
SELECT
    out_company_name       AS 线路,
    uniqExact(out_equ_no)  AS 闸机数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND out_company_name != '""'
GROUP BY out_company_name
ORDER BY 闸机数 DESC
图表类型 颜色字段 角度/指标字段
饼图 线路 闸机数

15. 组件 14:出站交易收入 TOP10

数据集名:ads_station_deal_day_top

sql 复制代码
SELECT
    out_station               AS 站点,
    round(sum(deal_money), 2) AS 收入,
    count(1)                  AS 笔数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND out_station != '""'
GROUP BY out_station
ORDER BY 收入 DESC
LIMIT 10
图表类型 纵轴字段 横轴字段
柱状图 站点 收入

对数字:深圳北 3,542,330 → 罗湖站 3,481,475 → 南山站 2,622,940。

16. 组件 15:出站交易所在线路收入 TOP10

数据集名:ads_line_deal_day_top

sql 复制代码
SELECT
    out_company_name          AS 线路,
    round(sum(deal_money), 2) AS 收入,
    count(1)                  AS 笔数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND out_company_name != '""'
GROUP BY out_company_name
ORDER BY 收入 DESC
图表类型 纵轴字段 横轴字段
柱状图 + 折线组合图 线路 收入(柱)+ 笔数(折线)

对数字:一号线 27,059,430 → 三号线 26,259,185 → 五号线 26,089,240。

17. 组件 16:每张卡日消费排行

数据集名:ads_card_deal_day_top

sql 复制代码
SELECT
    card_no                   AS 卡号,
    round(sum(deal_money), 2) AS 消费金额,
    count(1)                  AS 次数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
GROUP BY card_no
ORDER BY 消费金额 DESC
LIMIT 10
图表类型 纵轴字段 横轴字段
柱状图 卡号 消费金额

对数字:FHIGEIEDB 4,800 → FFGEDJEGD 4,200。

18. 组件 17:每天每线路换乘出站乘客百分比

数据集名:ads_conn_ratio_day_top

sql 复制代码
SELECT
    in_company_name                                  AS 线路,
    sum(if(conn_mark = 0, 1, 0))                     AS 换乘人数,
    count(1)                                         AS 总人数,
    round(sum(if(conn_mark = 0, 1, 0)) / count(), 4) AS 换乘占比
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND in_company_name != '""'
GROUP BY in_company_name
ORDER BY 换乘占比 DESC
图表类型 纵轴字段 横轴字段
面积图 / 折线图 线路 换乘占比

对数字:七号线 0.693 → 四号线 0.6366 → 九号线 0.6029。

19. 组件 18:每分钟每条线在线人数(环形)

数据集名:ads_on_line_min_top

sql 复制代码
SELECT
    in_company_name AS 线路,
    count()         AS 在位数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND concat(take_day, ' ', in_time)  <= concat(take_day, ' 08:30')
  AND concat(take_day, ' ', out_time) >  concat(take_day, ' 08:30')
GROUP BY in_company_name
ORDER BY 在位数 DESC

这里为什么用 concat(...) <= concat(...) 而不是时间函数?ClickHouse 的 toUnixTimestamp 不接受 08:30 这种缺秒的时间串(会直接报错)。2018-09-01 08:30 的字符串字典序就是时间序,所以直接用字符串比较最稳。

图表类型 颜色字段 角度/指标字段
环形图 线路 在位数

对数字(08:30 早高峰):五号线 16,165 → 三号线 12,281 → 一号线 8,045。

20. 组件 19:每小时每条线在线人数(环形)

数据集名:ads_on_line_hour_top

sql 复制代码
SELECT
    in_company_name AS 线路,
    count()         AS 在位数
FROM dws.dws_take_subway_detail
WHERE dt = '20180901'
  AND concat(take_day, ' ', in_time)  <= concat(take_day, ' 18:00')
  AND concat(take_day, ' ', out_time) >  concat(take_day, ' 18:00')
GROUP BY in_company_name
ORDER BY 在位数 DESC
图表类型 颜色字段 角度/指标字段
环形图 线路 在位数

想换成别的小时,只改 SQL 里那两个 18:00 就行(比如 12:00 看午高峰)。

21. 最后一步:把这 19 个组件拼成大屏

  1. 我的分析 → 智慧地铁可视化大屏 → 编辑
  2. 左下角点「新建仪表板」,起名 智慧地铁可视化大屏
  3. 左侧会列出你做的所有组件,一个个拖到画布上,按老师那张图的布局摆
  4. 摆好后点「保存」
text 复制代码
┌──────────────────────────────────────────────────┐
│  智慧地铁可视化大屏        [日期筛选]              │
├──────────────────────────────────────────────────┤
│  进出站人次排行榜(通栏)                          │
├───────────────┬──────────────┬───────────────────┤
│ 进站排行榜     │ 通勤平均指标卡 │ 出站排行榜        │
├───────────────┼──────────────┼───────────────────┤
│ 线路运输乘客数  │ 线路耗时环形   │ 车站区间客流      │
├───────────────┼──────────────┼───────────────────┤
│ 站点进站闸机雷达│ 通勤最长TOP   │ 站点出站闸机雷达  │
├───────────────┼──────────────┼───────────────────┤
│ 线路进站闸机饼图│ 换乘最久TOP   │ 线路出站闸机饼图  │
├───────────────┼──────────────┼───────────────────┤
│ 车站收入TOP10  │ 线路收入       │ 每卡日消费        │
├───────────────┼──────────────┼───────────────────┤
│ 换乘出站百分比  │ 每分钟在位数   │ 每小时在位数      │
└───────────────┴──────────────┴───────────────────┘

22. 常见问题

现象 原因 解决
预览 SQL 报错 复制时漏了字符 重新整段复制,注意别漏结尾的 LIMIT 10
图表是空的 字段拖错位置 值字段要拖到「横轴/指标」,文字字段拖到「纵轴/维度」
数字对不上 数据集还是旧的直连表 确认新建的是 SQL 数据集,不是数据库表
图表类型选不到雷达图 数据维度不够 雷达图需要 1 个维度 + 1 个指标,检查是否都拖了
想改日期 换 dt 把 SQL 里的 20180901 改成 20180831(但那天只有 170 行数据)
相关推荐
AC赳赳老秦17 天前
OpenClaw 与 FineBI 联动方案:公开数据自动采集与实时业务分析看板实践
大数据·开发语言·python·php·finebi·deepseek·openclaw
kejiayuan5 个月前
FineBI组件制作-构成分析类图表
数据分析·数据可视化·finebi
kejiayuan5 个月前
FineBI组件制作-流向分析类图表
数据分析·数据可视化·finebi
阿凡观察站6 个月前
2026年工程项目管理软件推荐:这5款主流产品值得关注
大数据·数据库·低代码·finebi·简道云
数据科学小丫7 个月前
finebi 案例3 健身房数据分析(建模)
大数据·数据分析·finebi
数据科学小丫7 个月前
数据操作案例:RFM 分析
大数据·数据分析·finebi
小张贼嚣张7 个月前
2026 最新对比:FineBI、FineReport、Tableau 三款工具区别、优缺点、使用率全景分析
信息可视化·数据分析·finebi
uNhPiLgvQDpJ8 个月前
FPGA实现和ET1100通信verilog源码。 ethercat从站方案。 使用Veril...
finebi
数据科学小丫9 个月前
finebi 常用组件操作
finebi