2016-12-14 2 views
1

Ich habe eine Tabelle mit 5 Spalten in HANA. Der Tabellenname ist Studenten und folgende sind die Felder - Name, Alter, Adresse, Geschlecht, Score.Ich brauche die eindeutigen Werte der einzelnen Spalten.Für zB die is- Tabelle is-Wie erhält man alle eindeutigen Werte aller Spalten, behält aber die ursprüngliche Tabellenstruktur bei?

 Name Age Address Gender Score 
     A  1  abc  F  10 
     C  3  abc  M  10 
     B  2  def  M  5 
     C  3  ghi  F  10 
     D  2  def  M  5 

Erwartete Ergebnisse

 Name Age Address Gender Score 
     A  1  abc  F  10 
     B  2  def  M  5 
     C  3  ghi    

Bitte vorschlagen, wie dies mit Blick oder odata.None der Gespräche zur Verfügung zu erreichen scheinen useful.I UNION will nicht, weil es kombiniert alle Werte in einer Spalte im Ergebnis.

+0

Mit diesen Beispieltabellendaten, was ist das erwartete Ergebnis? – jarlh

+0

Ich denke, Sie haben einen Tippfehler in Ihren erwarteten Ergebnissen für 'Alter'. Wie auch immer, ist die Reihenfolge der Werte für Sie wichtig oder ist es nur ein bestimmtes gültiges Ergebnis? – hvd

Antwort

2

Ich habe keinen Zugriff auf Hana, aber dies könnte den Job

select  min (name) as name 
      ,min (Age)  as Age 
      ,min (Address) as Address 
      ,min (Gender) as Gender 
      ,min (Score) as Score 

from  (   select Name ,Age ,Address ,Gender ,Score ,1000000000 as n      from students where 1=2 

      union all select Name ,null ,null ,null ,null ,row_number() over (order by Name) from students group by Name 
      union all select null ,Age ,null ,null ,null ,row_number() over (order by Age)  from students group by Age 
      union all select null ,null ,Address ,null ,null ,row_number() over (order by Address) from students group by Address 
      union all select null ,null ,null ,Gender ,null ,row_number() over (order by Gender) from students group by Gender 
      union all select null ,null ,null ,null ,Score ,row_number() over (order by Score) from students group by Score 
      ) s 

group by n 

order by n 
; 

+------+-----+---------+--------+--------+ 
| name | age | address | gender | score | 
+------+-----+---------+--------+--------+ 
| A | 1 | abc  | F  | 5  | 
+------+-----+---------+--------+--------+ 
| B | 2 | def  | M  | 10  | 
+------+-----+---------+--------+--------+ 
| C | 3 | ghi  |  |  | 
+------+-----+---------+--------+--------+ 

Für pädagogische Zwecke zu tun, hier sind die Ergebnisse der inneren Abfrage:

+------+-----+---------+--------+-------+---+ 
| name | age | address | gender | score | n | 
+------+-----+---------+--------+-------+---+ 
| A |  |   |  |  | 1 | 
+------+-----+---------+--------+-------+---+ 
| B |  |   |  |  | 2 | 
+------+-----+---------+--------+-------+---+ 
| C |  |   |  |  | 3 | 
+------+-----+---------+--------+-------+---+ 
|  | 1 |   |  |  | 1 | 
+------+-----+---------+--------+-------+---+ 
|  | 2 |   |  |  | 2 | 
+------+-----+---------+--------+-------+---+ 
|  | 3 |   |  |  | 3 | 
+------+-----+---------+--------+-------+---+ 
|  |  | abc  |  |  | 1 | 
+------+-----+---------+--------+-------+---+ 
|  |  | def  |  |  | 2 | 
+------+-----+---------+--------+-------+---+ 
|  |  | ghi  |  |  | 3 | 
+------+-----+---------+--------+-------+---+ 
|  |  |   | F  |  | 1 | 
+------+-----+---------+--------+-------+---+ 
|  |  |   | M  |  | 2 | 
+------+-----+---------+--------+-------+---+ 
|  |  |   |  | 5  | 1 | 
+------+-----+---------+--------+-------+---+ 
|  |  |   |  | 10 | 2 | 
+------+-----+---------+--------+-------+---+ 
Verwandte Themen