mysql gbase8a,GBase 8a MPP表字段分组后重复数据取其中一条的方法

1、表结构

gbase> desc tt1;

±------±-------------±-----±----±--------±------+

| Field | Type | Null | Key | Default | Extra |

±------±-------------±-----±----±--------±------+

| id | int(11) | YES | | NULL | |

| name | varchar(100) | YES | | NULL | |

±------±-------------±-----±----±--------±------+

2 rows in set (Elapsed: 00:00:00.01)

2、表数据例子

gbase> select * from tt1;

±-----±-------+

| id | name |

±-----±-------+

| 2 | dddddd |

| 2 | 100 |

| 2 | aa |

| 3000 | ss |

| 3000 | ss |

| 3000 | ee |

| 3000 | ff |

| 3000 | 9999 |

| 3000 | aaa |

| 3000 | 10 |

±-----±-------+

10 rows in set (Elapsed: 00:00:00.03)

3、按ID字段分组,name取最大

gbase> select * from(select id,name,ROW_NUMBER() over(partition by id order by name desc ) num from tt1 )aa where num=1;

±-----±-------±----+

| id | name | num |

±-----±-------±----+

| 2 | dddddd | 1 |

| 3000 | ss | 1 |

±-----±-------±----+

2 rows in set (Elapsed: 00:00:00.12)

4、按ID字段分组,name取最小

gbase> select * from(select id,name,ROW_NUMBER() over(partition by id order by name ) num from tt1 )aa where num=1;

±-----±-----±----+

| id | name | num |

±-----±-----±----+

| 2 | 100 | 1 |

| 3000 | 10 | 1 |

±-----±-----±----+

2 rows in set (Elapsed: 00:00:00.14)

5、关于GBase与mysql、Oracle兼容性

在我们项目开发中发现,GBase语法与mysql语法相似度达99%,有mysq基础的伙伴使用gbase

上手很快;

与oracle语法相似度达90%,以上ROW_NUMBER() over(partition by id order by name )统计函数语法和Oracle一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值