zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL使用SQL实现Oracle Rank函数功能

mysqlOracleSQL 实现 函数 功能 RANK 使用
2023-09-14 09:00:26 时间
`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL COMMENT 用户ID, `score` int(11) NOT NULL COMMENT 分数, `score_rank` int(11) NOT NULL COMMENT 分数排名, `created_at` datetime NOT NULL COMMENT 创建时间, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

依据score字段,对user_id进行排名,MySQL可以使用一条SQL实现


select a.user_id, a.score, (select count(distinct b.score) from users_points b where b.score = a.score) as rank from users_points a order by score desc;
得出的结果


+----+-------+------+

| user_id | score | rank |

+----+-------+------+

| 11 | 100 | 1 |

| 8 | 80 | 2 |

| 4 | 50 | 3 |

| 12 | 45 | 4 |

| 2 | 40 | 5 |

| 6 | 30 | 6 |

| 1 | 20 | 7 |

| 10 | 15 | 8 |

| 7 | 10 | 9 |

| 5 | 10 | 9 |

| 3 | 10 | 9 |

| 9 | 5 | 10 |

+----+-------+------+



【大数据开发运维解决方案】Sqoop增量同步mysql/oracle数据到hive(merge-key/append)测试文档 上一篇文章介绍了sqoop全量同步数据到hive, 本片文章将通过实验详细介绍如何增量同步数据到hive,以及sqoop job与crontab定时结合无密码登录的增量同步实现方法。
【大数据开发运维解决方案】Sqoop全量同步mysql/Oracle数据到hive 前面文章写了如何部署一套伪分布式的handoop+hive+hbase+kylin环境,也介绍了如何在这个搭建好的伪分布式环境安装配置sqoop工具以及安装完成功后简单的使用过程中出现的错误及解决办法, 接下来本篇文章详细介绍一下使用sqoop全量同步oracle/mysql数据到hive,这里实验采用oracle数据库为例,
【大数据开发运维解决方案】sqoop增量导入oracle/mysql数据到hive时时间字段为null处理 前面几篇文章详细介绍了sqoop全量增量导入数据到hive,大家可以看到我导入的数据如果有时间字段的话我都是在hive指定成了string类型,虽然这样可以处理掉时间字段在hive为空的问题,但是在kylin创建增量cube时需要指定一个时间字段来做增量,所以上面那种方式不行,这里的处理方式为把string改成timestamp类型,看实验:
【.NET 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比较 唠嗑一下。都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区。例如,去O,狭义上讲,是去Oracle数据库。但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断地位和需要商业授权的数据库产品。
从 Oracle/MySQL 到 PolarDB(二)| 学习笔记 快速学习从 Oracle/MySQL 到 PolarDB(二),介绍了从 Oracle/MySQL 到 PolarDB(二)系统机制, 以及在实际应用过程中如何使用。