【问题标题】:get row number for table获取表格的行号
【发布时间】:2017-07-11 07:05:16
【问题描述】:

我使用以下查询:

SELECT ROWNUM SNO,NAME,DEPT FROM TTABLE

结果是:

ROWNUM  NAME    DEPT
1       ABC     IT
2       DEF     IT
3       GHI     CSE

但我想要的是,对于每个新的dept,rownum 再次以 1 开头:

ROWNUM  NAME    DEPT
1       ABC     IT
2       DEF     IT
1       GHI     CSE

我怎样才能做到这一点?

【问题讨论】:

  • 你的rownum是多少?是字段吗?
  • ROW_NUMBER() OVER (PARTITION BY DEPT ORDER BY NAME)
  • 它的工作谢谢你...

标签: sql oracle11g oracle10g


【解决方案1】:

试试这个,

select count(DEPT) as ROWNUM, NAME, DEPT  from TTABLE group by DEPT;

它会给你,

ROWNUM  NAME    DEPT
1       ABC     IT
2       DEF     IT
1       GHI     CSE

【讨论】:

  • 不,它将失败,因为 NAME 不在 GROUP BY 中。如果它不会失败,它会返回不同的结果。
  • @dnoeth 名称是该表中的字段之一。我在发布之前尝试了这个查询。这个对我有用。在这里,我根据部门进行分组,因为我们需要所有部门及其数量。可能结果将是唯一组
  • 不,您在发布之前没有尝试过此查询。它被标记为Oracle,因此它会失败。 MySQL 将允许该语法,但返回不同的结果。如果它真的对你有用,你可以将它设置为sqlfiddle.com 或rextester.com 的小提琴吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2018-12-25
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多