# dwd_store_goods_sale 商品销售主表

> 生成时间：2026-01-28

## 表信息

| 属性 | 值 |
|------|-----|
| Schema | dwd |
| 表名 | dwd_store_goods_sale |
| 主键 | store_goods_sale_id |
| 扩展表 | dwd_store_goods_sale_ex |
| 记录数 | 17563 |
| 说明 | 商品销售流水事实表，记录每笔商品销售明细 |

## 字段说明

| 序号 | 字段名 | 类型 | 可空 | 主键 | 说明 |
|------|--------|------|------|------|------|
| 1 | store_goods_sale_id | BIGINT | NO | PK | 销售流水 ID |
| 2 | order_trade_no | BIGINT | YES | | 订单号 |
| 3 | order_settle_id | BIGINT | YES | | 结账单 ID → dwd_settlement_head |
| 4 | order_pay_id | BIGINT | YES | | 支付单 ID（当前数据全为 0） |
| 5 | order_goods_id | BIGINT | YES | | 订单商品 ID（0=商城订单） |
| 6 | site_id | BIGINT | YES | | 门店 ID |
| 7 | tenant_id | BIGINT | YES | | 租户 ID |
| 8 | site_goods_id | BIGINT | YES | | 门店商品 ID → dim_store_goods |
| 9 | tenant_goods_id | BIGINT | YES | | 租户商品 ID → dim_tenant_goods |
| 10 | tenant_goods_category_id | BIGINT | YES | | 商品分类 ID |
| 11 | tenant_goods_business_id | BIGINT | YES | | 业务大类 ID |
| 12 | site_table_id | BIGINT | YES | | 台桌 ID（0=商城订单，非台桌消费） |
| 13 | ledger_name | VARCHAR(200) | YES | | 商品名称。**样本值**: "哇哈哈矿泉水", "东方树叶", "可乐" 等 |
| 14 | ledger_group_name | VARCHAR(100) | YES | | 商品分类。**样本值**: "酒水", "零食", "香烟" 等 |
| 15 | ledger_unit_price | NUMERIC(18,2) | YES | | 单价（元） |
| 16 | ledger_count | INTEGER | YES | | 购买数量。**样本值**: 1, 2, 3, 4 等  |
| 17 | ledger_amount | NUMERIC(18,2) | YES | | 销售金额（元） |
| 18 | discount_price | NUMERIC(18,2) | YES | | 折扣金额 |
| 19 | real_goods_money | NUMERIC(18,2) | YES | | 实收金额 |
| 20 | cost_money | NUMERIC(18,2) | YES | | 成本金额 |
| 21 | ledger_status | INTEGER | YES | | 账本状态。**枚举值**: 1=已结算 |
| 22 | is_delete | INTEGER | YES | | 删除标记。**枚举值**: 0=未删除 |
| 23 | create_time | TIMESTAMPTZ | YES | | 创建时间 |
| 24 | coupon_share_money | NUMERIC(18,2) | YES | | 优惠券分摊金额 |

## 使用说明

**版本与最新值**
本表为事实表，无 SCD2 版本字段。

- 可用时间字段：create_time

```sql
-- 取最新一条（按时间字段倒序）
SELECT *
FROM dwd.dwd_store_goods_sale
ORDER BY create_time DESC NULLS LAST
LIMIT 1;
```
**使用示例**
```sql
-- 热销商品排行
SELECT 
  ledger_name,
  ledger_group_name,
  COUNT(*) AS sale_count,
  SUM(ledger_count) AS total_qty,
  SUM(real_goods_money) AS total_revenue
FROM dwd.dwd_store_goods_sale
WHERE is_delete = 0
GROUP BY ledger_name, ledger_group_name
ORDER BY total_revenue DESC
LIMIT 20;
```
