SQL to get unique record
EVENT_ID TRANSFER_ID
44745 693420
44744 693420
44743 603420
44742 603420
44741 543420
44740 543420
44739 543421
44738 543421
How can I get list of unique TRANSFER_ID?
EVENT_ID TRANSFER_ID
44745 693420
44743 603420
44741 543420
44739 543421
Maybe you'd be better of pivoting your data first and use Frank's approach on the result
NOT TESTED !
with
the_data(event_id,the_key,the_value) as
(select 44745,'transfer.id','693420' from dual union all
select 44745,'transfer.user','ABC' from dual union all
select 44744,'transfer.id','693420' from dual union all
select 44744,'transfer.user','DEF' from dual union all
select 44743,'transfer.id','603420 ' from dual union all
select 44743,'transfer.user','GHI' from dual union all
select 44742,'transfer.id','603420' from dual union all
select 44742,'transfer.user','JKL' from dual union all
select 44741,'transfer.id','543420' from dual union all
select 44741,'transfer.user','MNO' from dual union all
select 44740,'transfer.id','543420' from dual union all
select 44740,'transfer.user','PQR' from dual union all
select 44739,'transfer.id','543421 ' from dual union all
select 44739,'transfer.user','STU' from dual union all
select 44738,'transfer.id','543421' from dual union all
select 44738,'transfer.user','VWX' from dual
select event_id,
max(decode(the_key,'transfer.id',the_value)) transfer_id,
max(decode(the_key,'transfer.user',the_value)) transfer_user
from the_data
group by event_idYou could use PIVOT ... but no Database version was specified
Regards
Etbin
Similar Messages
-
Help needed to get unique record from an internal table
Hi Everybody,
I have to get unique record from an internal table. i know we can use read statement with key condition .
But the problem is i have to use some relational operators like GE or LE.
eg
read table itab into wa with key width GE itab-widthfrom
width LE itab-widthto
machno eq itab-machno.
Its giving me error when I use the operators GE , LE.( I think since it can't find a unique record with those relational
operators in the with key statement)
Is there any other way to get unique record from internal table without using the loop?
Thanks,
SunnyUsing the read statement you will need some kind of loop. For example.
DO.
READ TABLE......
WITH KEY ......
READ = SPACE
IF SY-SUBRC EQ 0
TABLE-READ = 'X'.
MODIFY TABLE
ADD 1 TO W_FOUND.
ELSE
EXIT.
ENDIF
ENDDO.
IF W_FOUND EQ 1.
...record is unique.
ENDIF. -
Extracting unique records from two different tables record
Hello,
In the following code of two different tables www.testing.com exists in both tables. I want to compare two different columns of the two different tables to get unique records.
SQL> select unique(videoLinks) from saVideos where sa_id=21;
VIDEOLINKS
www.testing.com
SQL> ed
Wrote file afiedt.buf
1* select unique(picLinks) from saImages where sa_id=21
SQL> /
PICLINKS
test
test14
www.hello.com
www.testing.comThanks & best regardsUnfortunatly you didn't mention the expected output. I guess it would be the one line
"www.testing.com"
in that case simply join the two tables.
select *
from saVideos v
join saImages i on i.sa_id = v.sa_id and i.picLinks = v.videoLinks
where v.sa_id=21;If needed then you could change the select list to retrieve only distinct values.
select unique v.sa_id, v.videolinks
from saVideos v
join saImages i on i.sa_id = v.sa_id and i.picLinks = v.videoLinks
where v.sa_id=21;I usually avoid distinct/unique whereever possible. This requires the database to do a sort and makes the query slow.
Edited by: Sven W. on Feb 10, 2011 1:55 PM -
Get unique value for a range of values from a table
Please help to identify the sql to get unique value for following scenario
Table A has 3 columns
column1 column2 column3user7666373 wrote:
Please help to identify the sql to get unique value for following scenarioUnique combinations of three columns? If so:
select DISTINCT column1,column2,column3 from A;SY. -
How to get multiple records using fn-bea:execute-sql()
Hi,
I created Proxy service(ALSB3.0) to get records from DB table. I have used Xquery function(fn-bea:execute-sql()). Using simple SQL query I got single record, but my table having multiple records. Please suggest how to get multiple records using fn-bea:execute-sql() and how to assign them in ALSB variable.
Regards,
Nagaraju
Edited by: user10373980 on Sep 29, 2008 6:11 AMHi,
Am facing the same issue stated above that I couldnt get all the records in the table that am querying in the Proxyservice.
For example:
fn-bea:execute-sql('EsbDataSource', 'student', 'select Name from StudentList' ) is the query that am using to fetch the records from the table called StudentList which contains more than one records like
Id Name
01 XXX
02 YYY
03 ZZZ
I tried to assign the result of the above query in a variable and while trying to log the variable, I can see the below
<student>
<Name>XXX</Name>
</student>
I want to have all the records from my table in xml format but it's not coming up. I get the value only from the first row of my table.
Please suggest.
regards,
Venkat -
How to get a count of unique records
How do you get a count of unique records? Looking only for one number, not a list..so if the data is:
ID
===
1234
1234
1234
1236
1236
1237
Then, the count total will be one field called 'ID' with the value '3' in it..
All I know how to do is get a count that will count all records, or do it in two queries. Looking to do this in one query statment..
Thanks..Just a small clarification...
Concatenation could potentially give wrong result, depending on the data.
For example...
sudhakar@ORCL>ed
Wrote file afiedt.buf
1 with t1 as
2 (select 'AA' c1, '101' c2 from dual union
3 select 'AA1' c1, '01' c2 from dual union
4 select 'AA101' c1, null c2 from dual union
5 select 'BB2' c1, '345' c2 from dual union
6 select 'AA101' c1, null c2 from dual union
7 select 'BB2' c1, '345' c2 from dual union
8 select 'BB234' c1, '5' c2 from dual
9 )
10* select count(distinct c1 || c2) from t1
sudhakar@ORCL>/
2IMHO, the required answer will be...
sudhakar@ORCL>ed
Wrote file afiedt.buf
1 with t1 as
2 (select 'AA' c1, '101' c2 from dual union
3 select 'AA1' c1, '01' c2 from dual union
4 select 'AA101' c1, null c2 from dual union
5 select 'BB2' c1, '345' c2 from dual union
6 select 'AA101' c1, null c2 from dual union
7 select 'BB2' c1, '345' c2 from dual union
8 select 'BB234' c1, '5' c2 from dual
9 )
10* select count(distinct c1 ||'.'|| c2) from t1
sudhakar@ORCL>/
5
sudhakar@ORCL>vr,
Sudhakar B. -
Info Cube not getting full records
Hi All,
I am extracting data from the flat file (60k records..of which most fields have binary values),, am getting the values into data source..but when loading from data source to info cube am not getting total records..
the load is successful and it is showing as transferred 60k records and added 510 records in the manage tab of the info cube.
what would be the problem ....any help is appreciated.Hi,
Data with same combination for characterstic is added and only for unique charactersitc value it will give new record.
Material---Customer-Price
10002----- C1--
20
10002----- C1--
20
10002----- C1--
20
10002----- C2--
20
SO As you can see in flat file 4 records are there but in inofcube it will be only 2
Data with same combination of charactersitc is added and with unique combo only it will display.
Hope it clears you.
Also in addition please check the data in flat file.
Regards,
AL -
How to get the record set into array?
Hi,
I want to get the record set into array in the procedure and do the processing of the array later in procedure.
below is the stored procedure i am working on:
procedure bulk_delete_group(p_group_id in Array_GroupListID) as
begin
for i in p_group_id.first..p_group_id.last loop
--Here I have to get the list of user id before deleting group
SELECT user_id into *<SOME ARRAY>* FROM group_members WHERE group_id = p_group_id(i);
DELETE group WHERE group_id = p_group_id(i);
--Process the user id array after group deletion..
end loop;
end bulk_delete_group;
Thanks in advance
AdityaSomething like this ->
satyaki>
satyaki>select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
Elapsed: 00:00:00.20
satyaki>
satyaki>
satyaki>select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
9999 SATYAKI SLS 7698 02-NOV-08 55000 3455 10
7777 SOURAV SLS 14-SEP-08 45000 3400 10
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 4450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 7000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
13 rows selected.
Elapsed: 00:00:02.37
satyaki>
satyaki>create type np is table of number;
2 /
Type created.
Elapsed: 00:00:03.32
satyaki>
satyaki>Create or Replace Procedure myProc(myArray np)
2 is
3 i number(10);
4 rec emp%rowtype;
5 Begin
6 for i in 1..myArray.count
7 loop
8 select *
9 into rec
10 from emp
11 where empno = myArray(i);
12
13 dbms_output.put_line('Employee No:'||rec.empno||' Name:'||rec.ename);
14 end loop;
15 End myProc;
16 /
Procedure created.
Elapsed: 00:00:00.88
satyaki>
satyaki>
satyaki>declare
2 v np:=np(9999,7777);
3 begin
4 myProc(v);
5 end;
6 /
Employee No:9999 Name:SATYAKI
Employee No:7777 Name:SOURAV
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.30
satyaki>Regards.
Satyaki De. -
Query to get the records with same last name
I need to write a single sql query to get all records with duplicate last_name's. For example, if tab1 has 4 records:
10 Amit Kumar
20 Kishore Kumar
30 Sachin Gupta
40 Peter Gabriel
then the query should return
10 Amit Kumar
20 Kishore Kumar
id, name,L_name being the 3 columns in table
Apprecite you help.
Thank you
MarySQL> create table mytable (id,name,l_name)
2 as
3 select 10, 'Amit', 'Kumar' from dual union all
4 select 20, 'Kishore', 'Kumar' from dual union all
5 select 30, 'Sachin', 'Gupta' from dual union all
6 select 40, 'Peter', 'Gabriel' from dual
7 /
Table created.
SQL> select id
2 , name
3 , l_name
4 from ( select t.*
5 , count(*) over (partition by l_name) cnt
6 from mytable t
7 )
8 where cnt > 1
9 /
ID NAME L_NAME
10 Amit Kumar
20 Kishore Kumar
2 rows selected.Regards,
Rob. -
If I generate loader / Insert script from Raptor, it's not working for Clob columns.
I am getting error:
SQL*Loader-510: Physical record in data file (clob_table.ldr) is long
er than the maximum(1048576)
What's the solution?
Regards,Hi,
Has the file been somehow changed by copying it between windows and unix? Ora file transfer done as binary or ASCII? The most common cause of your problem. Is if the end of line carriage return characters have been changed so they are no longer /n/r could this have happened? Can you open the file in a good editor or do an od command in unix to see what is actually present?
Regards,
Harry
http://dbaharrison.blogspot.co.uk/ -
Dynamic PL/SQL for Deletion of Records
Dear all,
I am using Dynamic PL/SQL for Deletion of Records,In that PL/SQL, i have to get the no.of records deleted and send a report with the no.of rows deleted.
Please help me on this..
Thanks,
MurugesanHi,
Try this:
SQL> SELECT * FROM T;
DT CODE
14-FEB-07 1
14-FEB-07 1
14-FEB-07 1
14-FEB-07 2
14-FEB-07 2
SQL>
SQL> ed
Wrote file afiedt.buf
1 BEGIN
2 EXECUTE IMMEDIATE ' DELETE FROM T WHERE CODE = 1';
3 DBMS_OUTPUT.PUT_LINE(' Total Deleted Rows :'||SQL%ROWCOUNT);
4* END;
SQL> /
Total Deleted Rows :3
PL/SQL procedure successfully completed.
SQL> Regards
Avinash -
Sql query - Selecting last recorded values for each date in specified period
Hello,
Can someone please help me with my problem.
I'm trying to get last recorded balance for each day for specific box (1 or 2) in specified period of days from ms access database using ADOTool.
I'm trying to get that information with SQL query but so far unsuccessfully...
My table looks like this:
Table name: TestTable
Date Time Location Box Balance
20.10.2014. 06:00:00 1 1 345
20.10.2014. 12:00:00 1 1 7356
20.10.2014. 18:45:00 1 1 5678
20.10.2014. 23:54:00 1 1 9845
20.10.2014. 06:00:02 1 2 35
20.10.2014. 12:00:04 1 2 756
20.10.2014. 18:45:06 1 2 578
20.10.2014. 23:54:10 1 2 845
21.10.2014. 06:00:00 1 1 34
21.10.2014. 12:05:03 1 1 5789
21.10.2014. 15:00:34 1 1 1237
21.10.2014. 06:00:00 1 2 374
21.10.2014. 12:05:03 1 2 54789
21.10.2014. 15:00:34 1 2 13237
22.10.2014. 06:00:00 1 1 8562
22.10.2014. 10:00:00 1 1 1234
22.10.2014. 17:03:45 1 1 3415
22.10.2014. 22:00:00 1 1 6742
22.10.2014. 06:00:05 1 2 562
22.10.2014. 10:00:16 1 2 123
22.10.2014. 17:03:50 1 2 415
22.10.2014. 22:00:10 1 2 642
23.10.2014. 06:00:00 1 1 9876
23.10.2014. 09:13:00 1 1 223
23.10.2014. 13:50:17 1 1 7768
23.10.2014. 19:47:40 1 1 3456
23.10.2014. 21:30:00 1 1 789
23.10.2014. 23:57:12 1 1 25
23.10.2014. 06:00:07 1 2 976
23.10.2014. 09:13:45 1 2 223
23.10.2014. 13:50:40 1 2 78
23.10.2014. 19:47:55 1 2 346
23.10.2014. 21:30:03 1 2 89
23.10.2014. 23:57:18 1 2 25
24.10.2014. 06:00:55 1 1 346
24.10.2014. 12:30:22 1 1 8329
24.10.2014. 23:50:19 1 1 2225
24.10.2014. 06:01:00 1 2 3546
24.10.2014. 12:30:26 1 2 89
24.10.2014. 23:51:10 1 2 25
Let's say the period is 21.10.2014. - 23.10.2014. and I want to get last recorded balance for box 1. for each day. The result should look like this:
Date Time Location Box Balance
21.10.2014. 15:00:34 1 1 1237
22.10.2014. 22:00:00 1 1 6742
23.10.2014. 23:57:12 1 1 25
So far I've managed to write a query that gives me balance for ONLY ONE date (date with highest time in whole table), but I need balance for EVERY date in specific period.
My incorrect code (didn't manage to implement "BETWEEN" for dates...):
SELECT TestTable.[Date], TestTable.[Time], TestTable.[Location], TestTable.[Box], TestTable.[Balance]
FROM TestTable
WHERE Time=(SELECT MAX(Time)
FROM TestTable
WHERE Location=1 AND Box=1 );
Tnx!
Solved!
Go to Solution.For loop
following query keep day (here 24 in below query) Variable from ( 1 to 28-29/30/31 as per month)
SELECT TOP 1 TestTable.[Date], TestTable.[Time], TestTable.[Location], TestTable.[Box], TestTable.[Balance]
FROM Test Table.
WHERE Time=(SELECT MAX(Time) FROM TestTable WHERE Location=1 AND Box=1 )
AND DATE = "2014-10-24";
PBP (CLAD)
Labview 6.1 - 2014
KUDOS ARE WELCOMED.
If your problem get solved then mark as solution. -
Alternative to find unique records with 60 character in selection string.
Hi,
We have to find out the values from the Infoobject. When we try to display data from an master object, the maximum length of selection it accepts 45 characters only but we need to input data around 60 characters in selection.
Thing we tried:
1. Selecting complete data without any condition but it did not work due to large volume of data.
2. We tried to extract data from RSA3 but it did not work due to large volume of data.
Please suggest me alternative to find unique records with 60 character in selection string.
Regards,
Himanshu Panchal.This sounds a bit strange. Are you perhaps mistakenly storing text data incorrectly as the primary key of the master data? I can't think of any actual data that is that length to ensure usinqueness - even GUIDs are maximum 32 characters - but GUIDs don't count as actual "readable" data although you do need to be able to select it from time to time. Perhaps you have a super secure password hash or something like it ?
Also are you expecting to have a unique single record returned by your selection? To do this would in general REQUIRE that ALL the data is read because master data is not stored in the DB sorted by the data itself, but stored instead sorted by the it's SID.
When you say you are selecting data from master data, which master data tables are you using? I have been able to select data from very large MD table (15 million unique records) using SE16 with no problems. Just enter the table name, and before you execute just count the number of records - it helps to know what you want to end up with.
Have you tried using wild cards (the *) to preselect a smaller number of records : * a bit of your 60 character string *
If you are trying to select from a non-key field you will encounter performance issues, but you can still use the wildcards, and get a result.
Don't use RSA3 it was designed to make selections and group them into datapackets. It's not the same as selecting directly on the table in SE11 or SE16 -
I've created a dynamic table that retrieves multiple records
for an individual. I've included a submit button in each line
created with the unique record ID as hidden data to be sent for
selecting a update page, but the data I get is all of the unique
records ID's, like 45,46,48,49,50 where I only wanted #46. The
example in the workbook shows an href call to select a particular
record. Is it possible to use either a submit key or a radio button
to select a certain record to update? I have additional data I need
to pass along to the next page so an href pointer won't really
work. What am I doing wrong?If you don't want to use an HREF pointer, then you will need
to use some JavaScript to let you know which record the user has
selected. Instead of using a type="submit", use a type="button" and
then include the following onClick statement in the tag:
onClick="document.form1.selectID=#rs_AP_Cert_Quest.Key#;
document.form1.submit();"
Then include a hidden form element named selectID at the
bottom of the page.
I probably would use a function instead of coding it directly
in case I needed to add some more functionality and it would get to
messy to do all of the JS inline. But the above code will get you
running. -
Query Unique Records WITH ROWID
Hi All,
I have 2 columns which returns records like this Say Column A and Column B.
A B
1 1
1 1
2 2
2 2
3, 3
I need only distinct records from these columns. So i executed DISTINCT Clause in my query and it returned unique records. Issue is I need to execute a query like this i.e compulsorily use ROWID in my select list.
i.e SELECT DISTINCT ROWID A, B from TEST;
But this query we will give duplicated records only when we give rowid, how to achieve a output like this using rowid in the column select list of my query.
A B
1 1
2 2
3, 3
Please Help.
Thanks in advance.If you want just one rowid for each (a, b) couple:
SQL> select a, b, min(rowid)
2 from y
3 group by a, b;
A B MIN(ROWID)
1 1 AAAfoUAAEAAA7T0AAA
2 2 AAAfoUAAEAAA7T0AAC
3 3 AAAfoUAAEAAA7T0AAEIf you want all rowid's for each couple:
SQL>select a, b, rtrim(extract(xmlagg(xmlelement("a",rowid||',')),'//text()'),',') rowids
2 from y
3* group by a, b
A B ROWIDS
1 1 AAAfoUAAEAAA7T0AAA,AAAfoUAAEAAA7T0AAB
2 2 AAAfoUAAEAAA7T0AAC,AAAfoUAAEAAA7T0AAD
3 3 AAAfoUAAEAAA7T0AAEThanks Buga for posting sample data ;)
Max
[My Italian Oracle blog| http://oracleitalia.wordpress.com/2010/02/07/aggiornare-una-tabella-con-listruzione-merge/]
Maybe you are looking for
-
Error 0x6 when installing windows 7 home premium onto windows xp
So i downloaded the college priced Windows 7 that i bought from microsoft. I know there was a issue with everyone not getting a ISO file, they got 3 seperate files (setup2.box setup1.box and Win7-HP...) I then followed the steps microsoft gave to mak
-
How do I delete a rental movie that was unable to dowload
How do I delete a rental movie that was unable to download
-
Where do I find CS5 to download?
I am a former customer and user of CS5. I have already payed for it, but since I have changed pc I need to install the suite all over again. Could you give an URL to where this version is available for download?
-
My audio adjustments windows has disappeared?!
I haven't used iMovie '08 in a while (since before I installed snow leopard) I opened it up to edit some clips together and add a nice track to it. When i clicked on the audio adjustments button the black window that usually hovers didn't open up, al
-
I downloaded Class Locator and followed all the necessary steps for adding it to NWDS. Now if I rightclick, I can see 'Locate jar/class' option, but it is never enabled.