SQL分组还原(SQL解惑读书笔记 一)

有如下的一个表

    CREATE TABLE Inventory (

      goods char (10) NOT NULL ,

      pieces int (11) NOT NULL ,

      PRIMARY KEY (goods)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

有如下的数据

    insert into Inventory values

    ( "Hard disk" , 5),

    ( "Display" , 3);

现在呢?需要对表进行分解,如表中有一条记录

    ( "Display" , 3)

希望得到三条记录

    ( "Display" , 1),

    ( "Display" , 1),

    ( "Display" , 1)

 

 

 

解答 1: 用一个辅助表来完成

建立如下的一个表

    CREATE TABLE Sequence (

      id int (11) NOT NULL AUTO_INCREMENT,

      PRIMARY KEY (id)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在表中插入如下数据

    insert into Sequence values

    (1),(2),(3),(4),(5);

 

 

 

用以下 SQL 完成所求

    select i.goods, 1 from Inventory i, Sequence s

    where i.pieces >= s.id order by goods;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值