SQL:创建一个基于日期创建位置的 View

标签 sql view

我实际上正在运行oracle,但是当我将示例复制到sqlfiddle时,如果我选择oracle而不是mysql,它就不会运行,也许oracle的fiddle版本与我的不同。 http://www.sqlfiddle.com/#!2/44933/1

CREATE TABLE Positiontest(
ID VARCHAR(20),
code CHAR(06),
registrationdate DATE,
PRIMARY KEY(ID,code)
);

INSERT INTO Positiontest VALUES('01','COM002','2012-12-11');
INSERT INTO Positiontest VALUES('02','COM002','2012-12-12');
INSERT INTO Positiontest VALUES('01','COM003','2012-12-11');

这给了我位置测试表:

  ID     CODE      REGISTRATIONDATE
  01     COM002    2012-12-11
  02     COM002    2012-12-12
  01     COM003    2012-12-11

我想创建一个如下所示的 View :

  ID     CODE      POSITION
  01     COM002    1
  02     COM002    2
  01     COM003    1

顺序不重要,只要有 每个代码都有一个唯一位置。

最佳答案

您需要 row_number() 函数:

select pt.*,
       row_number() over (partition by code order by code) as Position
from PositionTest pt

关于SQL:创建一个基于日期创建位置的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13844419/

相关文章:

java - 如何在Android上定义圆形ImageView?

ruby - 如何从 Rails 中的 View 表单中获取模型中的参数值?

php - 将数组更改为sql查询

sql - 使用 "LIKE"语法进行高效全文搜索的索引

SQLSTATE[22P02] : Invalid text representation

sql - 当要跳过的数字很大时, Entity Framework 的“跳过/获取”非常慢

php - Mysql (MariaDB) 每次查询与从 View 读取?

sql - Postgresql 中此连接查询的正确索引

java - 测试 View 是否存在,但我的方法返回 false - 它应该返回 true

view - 插入到 Hive 中的 View 中