如何按列分组

Luk*_*101 3 sql oracle

嗨,我知道如何使用group by子句为sql.我不知道如何解释这个,所以我画了一些图表.这是我的原始数据:

Name          Location
----------------------
user1         1
user1         9
user1         3
user2         1
user2         10
user3         97
Run Code Online (Sandbox Code Playgroud)

这是我需要的输出

Name          Location
----------------------
user1         1
              9
              3
user2         1
              10
user3         97
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?

JNK*_*JNK 5

通常的方法是在表示层而不是数据库层处理它.

原因:

  • Name字段是该数据行的属性
  • 如果你离开Name了,你怎么知道Location哪个名字是什么?
  • 您隐含地依赖于数据的顺序,这在SQL中是一种非常糟糕的做法(因为返回的数据没有固有的排序)
  • 任何解决方案都需要涉及游标或循环,这不是SQL优化的 - 它喜欢在SETS中工作而不是在单独的行上工作