You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从dealdate列提取DAY/WEEK/MONTH/YEAR并创建summary tour details表

实现Tour Details表到summary tour details表的转换

原表:Tour Details

dealdateToursWeeknumberCountrySubVenue
2022-01-12349IndiaSP1
2022-11-25448IndiaSP2
2022-10-14542IndiaSP3
2023-01-0532IndiaSP1
2023-01-0542IndiaSP2
2023-01-0652USSP1
2023-02-2439USSP2
2022-02-1247USSP3
2023-02-1958USSP1
2023-02-27610USSP2

需求说明

创建名为summary tour details的表,需包含以下内容:

  • 从dealdate字段提取的DAY、WEEK、MONTH、YEAR信息
  • 按SubVenue分组,生成格式为Tours {SubVenue}的分组标识Grp

目标表示例

GrpDayWeekMonthYear
Tours SP1149122022
Tours SP2350112023
Tours SP12312022
Tours SP312422023

不同数据库的实现代码

MySQL

CREATE TABLE `summary tour details` AS
SELECT
    CONCAT('Tours ', SubVenue) AS Grp,
    DAY(dealdate) AS Day,
    WEEK(dealdate, 1) AS Week, -- 模式1表示周一是每周第一天,可根据需求调整
    MONTH(dealdate) AS Month,
    YEAR(dealdate) AS Year
FROM `Tour Details`
GROUP BY SubVenue, Day, Week, Month, Year;

SQL Server

CREATE TABLE [summary tour details]
AS
SELECT
    'Tours ' + SubVenue AS Grp,
    DAY(dealdate) AS Day,
    DATEPART(WEEK, dealdate) AS Week,
    MONTH(dealdate) AS Month,
    YEAR(dealdate) AS Year
FROM [Tour Details]
GROUP BY SubVenue, DAY(dealdate), DATEPART(WEEK, dealdate), MONTH(dealdate), YEAR(dealdate);

PostgreSQL

CREATE TABLE "summary tour details" AS
SELECT
    'Tours ' || "SubVenue" AS "Grp",
    EXTRACT(DAY FROM "dealdate")::INT AS "Day",
    EXTRACT(WEEK FROM "dealdate")::INT AS "Week",
    EXTRACT(MONTH FROM "dealdate")::INT AS "Month",
    EXTRACT(YEAR FROM "dealdate")::INT AS "Year"
FROM "Tour Details"
GROUP BY "SubVenue", "Day", "Week", "Month", "Year";

注意事项

  1. 若需使用原表中的Weeknumber字段而非从日期提取,只需将代码中的周相关函数替换为Weeknumber即可
  2. 分组逻辑为按SubVenue和日期的天/周/月/年维度分组,确保同一分组下的日期维度一致
  3. 部分数据库对带空格的表名/字段名需用反引号(MySQL)、方括号(SQL Server)或双引号(PostgreSQL)包裹

内容的提问来源于stack exchange,提问作者Burt Ox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:40:32