热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为数据库管理场景设计,能够根据用户指定的数据表和数据需求,生成高效、安全的数据检索视图。通过专业的数据结构分析和SQL优化技术,确保生成的视图具备良好的查询性能和可维护性。适用于企业数据管理、报表生成、数据接口开发等多种业务场景,帮助用户快速构建标准化的数据访问层,提升数据检索效率并保障数据安全。
| 变量 | 描述 | 示例 |
|---|---|---|
| 数据表名称 | 需要创建视图的源数据表名称 | 用户信息表 |
| 查询数据需求 | 通过视图需要检索的具体数据内容描述 | 查询活跃用户的姓名和注册时间 |
| 目标数据库类型 | 目标数据库管理系统类型 | MySQL |
| 视图用途 | 视图的主要应用场景和用途 | 业务分析报表 |
-- Schema(可按需调整)
CREATE SCHEMA IF NOT EXISTS reporting;
-- 近30天销售概览视图:按日期、渠道汇总指标,同时保留明细维度列
-- 注意:视图不保证结果默认排序,消费端应显式 ORDER BY order_date DESC
CREATE OR REPLACE VIEW reporting.vw_sales_overview_30d
AS
WITH base AS (
SELECT
order_date::date AS order_date, -- 统一按“日”粒度
channel,
province,
sku_id,
paid_amount,
gross_profit,
status
FROM sales_order
WHERE
-- 仅取近30天
order_date >= current_date - interval '30 days'
-- 排除测试/取消单(基于状态关键字,建议结合贵司实际状态值调整)
AND coalesce(status, '') !~* '(?:^test|测试)'
AND coalesce(status, '') !~* '(?:cancel|取消)'
),
with_win AS (
SELECT
b.*,
-- 按“日期+渠道”粒度的窗口汇总
count(*) OVER (PARTITION BY b.order_date, b.channel) AS order_count,
sum(b.paid_amount) OVER (PARTITION BY b.order_date, b.channel) AS gmv,
sum(b.gross_profit) OVER (PARTITION BY b.order_date, b.channel) AS gp_sum
FROM base b
)
SELECT
order_date,
channel,
province,
sku_id,
paid_amount,
gross_profit,
status,
order_count,
gmv,
-- 客单价 = 成交额 / 订单数(同粒度),保留两位小数
CASE
WHEN order_count > 0
THEN round((gmv::numeric / order_count)::numeric, 2)
ELSE 0::numeric
END AS avg_order_value,
-- 毛利率 = 毛利 / 成交额(同粒度),保留四位小数
CASE
WHEN gmv <> 0
THEN round((gp_sum::numeric / nullif(gmv::numeric, 0))::numeric, 4)
ELSE NULL
END AS gross_margin_rate
FROM with_win;
-- 元数据文档
COMMENT ON VIEW reporting.vw_sales_overview_30d IS
'近30天销售概览(报表用):按日期、渠道产出订单数、成交额、客单价、毛利率,并保留省份、SKU与单据金额明细。
说明:order_count/GMV/毛利率为“日期+渠道”粒度的窗口汇总值,行级明细会重复该汇总指标,汇总查询请使用 DISTINCT ON 或再次聚合。';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.order_date IS '订单日期(按日)';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.channel IS '渠道';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.province IS '省份';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.sku_id IS 'SKU标识';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.paid_amount IS '成交额(行级)';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.gross_profit IS '毛利(行级)';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.status IS '订单状态(已过滤测试/取消)';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.order_count IS '订单数(日期+渠道窗口汇总)';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.gmv IS '成交额GMV(日期+渠道窗口汇总)';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.avg_order_value IS '客单价 = GMV / 订单数';
COMMENT ON COLUMN reporting.vw_sales_overview_30d.gross_margin_rate IS '毛利率 = 毛利 / GMV';
重要说明:
| 视图字段 | 来源/表达式 | 说明 |
|---|---|---|
| order_date | sales_order.order_date::date | 统一到日粒度 |
| channel | sales_order.channel | 渠道 |
| province | sales_order.province | 省份 |
| sku_id | sales_order.sku_id | SKU标识 |
| paid_amount | sales_order.paid_amount | 行级成交额 |
| gross_profit | sales_order.gross_profit | 行级毛利 |
| status | sales_order.status | 订单状态(已在视图中过滤测试/取消) |
| order_count | count(*) OVER (PARTITION BY order_date::date, channel) | 日期+渠道的订单数(若为多行订单,建议替换为 count(distinct order_id)) |
| gmv | sum(paid_amount) OVER (PARTITION BY order_date::date, channel) | 日期+渠道的成交额 |
| avg_order_value | round(gmv::numeric/order_count, 2) | 客单价(两位小数) |
| gross_margin_rate | round(sum(gross_profit)/sum(paid_amount), 4) OVER 同分区 | 毛利率(四位小数,分母为0时返回NULL) |
-- 近30天(视图内已限制),再筛选最近7天并汇总
SELECT DISTINCT ON (order_date, channel)
order_date,
channel,
order_count,
gmv,
avg_order_value,
gross_margin_rate
FROM reporting.vw_sales_overview_30d
WHERE order_date >= current_date - interval '7 days'
ORDER BY order_date DESC, channel;
SELECT
order_date,
channel,
province,
sku_id,
paid_amount,
gross_profit,
status,
order_count,
gmv,
avg_order_value,
gross_margin_rate
FROM reporting.vw_sales_overview_30d
WHERE channel = 'Online'
AND order_date BETWEEN current_date - interval '15 days' AND current_date
ORDER BY order_date DESC, sku_id
LIMIT 200;
-- 示例:按日期+渠道聚合(直接查底表),适用于超出30天的分析
SELECT
order_date::date AS order_date,
channel,
COUNT(*) AS order_count, -- 若有 order_id:COUNT(DISTINCT order_id)
SUM(paid_amount) AS gmv,
ROUND(SUM(paid_amount)::numeric / NULLIF(COUNT(*), 0), 2) AS avg_order_value,
ROUND(SUM(gross_profit)::numeric / NULLIF(SUM(paid_amount)::numeric, 0), 4) AS gross_margin_rate
FROM sales_order
WHERE order_date >= date '2024-01-01'
AND order_date < date '2024-03-01'
AND coalesce(status, '') !~* '(?:^test|测试)'
AND coalesce(status, '') !~* '(?:cancel|取消)'
GROUP BY order_date::date, channel
ORDER BY order_date DESC, channel;
注意:如底表行为“多行/每单多明细”,请尽快确认并将视图中的 order_count 改为 count(distinct order_id) OVER (...);同时在使用示例中 GROUP BY/去重逻辑将更加准确。
-- 视图名称:vw_hr_rd_weekly_attendance_90d
-- 作用:R&D在职员工近90天按周聚合工时与加班,供HR在权限控制下查询
-- 说明:
-- 1) 周起始日为周一(基于 MySQL WEEKDAY:周一=0 ... 周日=6)
-- 2) 只包含 R&D 且在职员工
-- 3) 仅输出指定字段,自动屏蔽手机号、薪资等敏感信息
-- 4) 视图内限制近90天,避免全表扫描
-- 注意:
-- - 假定 employee_attendance 表包含如下字段:
-- employee_id, name, dept, attendance_date, work_hours, overtime_hours, is_active
-- - 若在职标识不是 is_active,请将条件 ea.is_active = 1 替换为如
-- ea.employment_status = 'ACTIVE' 或 ea.termination_date IS NULL
CREATE OR REPLACE
ALGORITHM = TEMPTABLE
-- 请将以下 DEFINER 替换为受控的最小权限账户,例如仅有 SELECT 权限的专用账户
DEFINER = `hr_view`@`%`
SQL SECURITY DEFINER
VIEW `vw_hr_rd_weekly_attendance_90d` AS
SELECT
ea.employee_id AS employee_id,
ea.name AS name,
ea.dept AS dept,
DATE_SUB(DATE(ea.attendance_date), INTERVAL WEEKDAY(DATE(ea.attendance_date)) DAY) AS week_start,
ROUND(SUM(COALESCE(ea.work_hours, 0)), 2) AS work_hours,
ROUND(SUM(COALESCE(ea.overtime_hours, 0)), 2) AS overtime_hours
FROM
`employee_attendance` ea
WHERE
ea.dept = 'R&D'
AND ea.is_active = 1
AND ea.attendance_date >= CURRENT_DATE - INTERVAL 90 DAY
GROUP BY
ea.employee_id,
ea.name,
ea.dept,
DATE_SUB(DATE(ea.attendance_date), INTERVAL WEEKDAY(DATE(ea.attendance_date)) DAY);
权限授予(示例):
-- 为 HR 角色或账号授予只读权限(仅示例,按贵司权限体系调整)
GRANT SELECT ON `vw_hr_rd_weekly_attendance_90d` TO 'hr_analyst'@'%';
过滤条件(视图内部):
SELECT *
FROM vw_hr_rd_weekly_attendance_90d;
SELECT *
FROM vw_hr_rd_weekly_attendance_90d
WHERE name = '张三';
SELECT *
FROM vw_hr_rd_weekly_attendance_90d
WHERE name LIKE '%张%';
SELECT *
FROM vw_hr_rd_weekly_attendance_90d
WHERE week_start = '2025-11-24';
SELECT *
FROM vw_hr_rd_weekly_attendance_90d
WHERE name = '李四'
AND week_start = '2025-11-24';
SELECT *
FROM vw_hr_rd_weekly_attendance_90d
WHERE week_start BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)
AND CURRENT_DATE;
提示:视图中已限制近90天数据,如需更长窗口,请调整视图并评估性能。
必做优化:
可选优化(按数据量评估后实施):
ALTER TABLE employee_attendance
ADD COLUMN week_start DATE
GENERATED ALWAYS AS (DATE_SUB(DATE(attendance_date), INTERVAL WEEKDAY(DATE(attendance_date)) DAY)) STORED,
ADD INDEX idx_attendance_week (dept, is_active, week_start, employee_id);
安全与治理:
维护建议:
如实际表结构与本文假设存在差异(尤其是在职标识字段名、日期字段名),请告知具体字段名称,我将据实调整视图SQL与索引方案。
以下方案基于SQL Server,面向“事件数据接口”的近7天客户行为明细视图,兼顾查询性能、数据安全与可维护性。为确保一致性与安全性,视图仅输出必要业务字段,并对IP与UA进行不可逆或弱化可识别度的掩码处理,同时过滤爬虫与内测设备数据。
前置假设(请与实际表结构校验并据此微调)
-- 视图:近7天行为明细(已过滤bot/内测,IP/UA已掩码)
-- 目标用途:数据接口使用;按 event_time 可筛选
-- 注意:如需调整过滤策略或掩码规则,请在测试环境验证后再变更生产
IF OBJECT_ID('dbo.v_customer_event_7d_api', 'V') IS NOT NULL
DROP VIEW dbo.v_customer_event_7d_api;
GO
CREATE VIEW dbo.v_customer_event_7d_api
AS
SELECT
cel.event_time,
CAST(cel.event_time AS date) AS event_date, -- 基于UTC的日期衍生,如有本地时区需求请另行转换
cel.user_id_hash,
cel.session_id,
cel.event_name,
cel.platform,
cel.source,
cel.utm_campaign,
cel.country,
cel.city,
-- IP掩码:IPv4降至/24;非IPv4(含端口/IPv6/异常)回退为哈希后节选
CASE
WHEN cel.ip_address LIKE '[0-9]%.[0-9]%.[0-9]%.[0-9]%'
AND PARSENAME(cel.ip_address,4) IS NOT NULL
AND PARSENAME(cel.ip_address,3) IS NOT NULL
AND PARSENAME(cel.ip_address,2) IS NOT NULL
AND PARSENAME(cel.ip_address,1) IS NOT NULL
THEN CONCAT(PARSENAME(cel.ip_address,4), '.', PARSENAME(cel.ip_address,3), '.', PARSENAME(cel.ip_address,2), '.0')
WHEN cel.ip_address IS NOT NULL
THEN CONCAT('h_', RIGHT(CONVERT(varchar(64), HASHBYTES('SHA2_256', cel.ip_address), 2), 16))
ELSE NULL
END AS ip_masked,
-- UA掩码:保留前缀+哈希后8字节节选(不泄露完整UA)
CASE
WHEN cel.user_agent IS NULL THEN NULL
ELSE CONCAT(LEFT(cel.user_agent, 16), N'…', RIGHT(CONVERT(varchar(64), HASHBYTES('SHA2_256', cel.user_agent), 2), 8))
END AS user_agent_masked
FROM dbo.customer_event_log AS cel
WHERE
-- 仅近7天(UTC),区间可利用索引(event_time)做SEEK
cel.event_time >= DATEADD(DAY, -7, SYSUTCDATETIME())
AND cel.event_time < SYSUTCDATETIME()
-- 过滤bot与内测设备(优先使用标识列;UA关键词仅作为兜底)
AND NOT (
COALESCE(cel.is_bot, 0) = 1
OR COALESCE(cel.is_internal_device, 0) = 1
OR COALESCE(cel.device_env, '') IN ('test', 'internal', 'staging', 'qa')
OR COALESCE(cel.source, '') IN ('bot', 'crawler', 'monitoring')
OR (cel.user_agent IS NOT NULL AND (
cel.user_agent LIKE '%bot%' OR cel.user_agent LIKE '%crawler%' OR cel.user_agent LIKE '%spider%' OR cel.user_agent LIKE '%headless%'
))
);
GO
SELECT TOP (100) *
FROM dbo.v_customer_event_7d_api
ORDER BY event_time DESC;
DECLARE @start_utc datetime2 = '2025-12-02T00:00:00Z';
DECLARE @end_utc datetime2 = '2025-12-03T00:00:00Z';
SELECT *
FROM dbo.v_customer_event_7d_api
WHERE event_time >= @start_utc
AND event_time < @end_utc
ORDER BY event_time;
SELECT event_time, user_id_hash, event_name, platform, country
FROM dbo.v_customer_event_7d_api
WHERE platform = 'iOS'
AND country = 'US'
AND event_time >= DATEADD(HOUR, -12, SYSUTCDATETIME())
ORDER BY event_time DESC;
安全与合规声明
让数据与研发团队在几分钟内,从“口头需求”快速落地为可复用、可审计、可扩展的数据库视图方案,显著提升交付速度与可维护性,降低性能与合规风险,助力报表、接口与分析场景稳定上线并可持续迭代。
快速建立统一视图规范;梳理关键业务主题的标准视图;制定权限边界与脱敏策略;提升跨部门数据复用与交付效率。
依据指标口径描述即可生成报表视图;减少手写联表与字段遗漏;稳定驱动周报、月报与可视化看板。
为接口一键产出稳定数据源视图;隐藏复杂表结构并统一命名;降低数据库压力,提升接口响应一致性。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期