on ‎2018 Mar 15 3:51 AM
Hi, experts.
I have a issue. I need to delete duplicates from local table variable in AMDP.
I find this
delete from tab
where "$rowid$" in
(
SELECT LEAD($rowid$) over (partition by field1, field2) from tab
) ;
But for local table variable it is do not work .
Help others by sharing your knowledge.
AnswerRequest clarification before answering.
DELETE on table variables is only available starting with HANA 2. Do you use a HANA 2?
Besides that, using the internal column store column $rowid$ has never been supported - using it to eliminate duplicate records in the absence of a key is not the brightest idea.
What you can easily do in your case is to simply SELECT DISTINCT from your table variable.
tab_dupes = SELECT ... FROM all_my_dupes;
tab_nodupes = SELECT DISTINCT * FROM :tab_dupes;
That's it. No weird internal column stuff, no difficult update on table variables.
For scenarios where you have duplicates only on the subset of columns, e.g. your key-columns to-be, you can use the standard options like picking the largest value (if "largest" is unique) or just get the first/last entry. But that's all standard SQL, too...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks, Lars.
I am using Hana 1.0 SPS12.
I am trying to using DISTINCT but more complex task.
I have i db table with stocks history.For example
matnr werks gjahr monat stock
1000000000 1000 2017 05 0
1000000000 1000 2017 04 2
1000000000 1000 2017 01 1
1000000001 1000 2018 02 2
1000000001 1000 2018 03 3
1000000001 1000 2018 01 1
And i need to get the last stock for each group of (matnr+werks)
For using distinct i need to select only matnr+werks, but how i can get last stock number ?
| User | Count |
|---|---|
| 12 | |
| 9 | |
| 6 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.