How to filter complex data using pl/sql

Hello,
i have to filter some data from the table with 1millions rows in it.
here the requirement
for example table is TEST
id type
1 a
1 a
1 b
2 c
33 b
33 b
33 c
33 d
5 c
5 c
now i just want to display the results which contains type c only if id is with also connected other than c than i dont want to dislplay that results
so my result will look like .here i dont want to disply id 33 because some the id with 33 are connected with type other than c.
id type
2 c
5 c
so can please give me idea to make a query on that table
thanks in advance

with t as (
           select  1 id,'a' type_cd from dual union all
           select  1 id,'a' type_cd from dual union all
           select  1 id,'b' type_cd from dual union all
           select  2 id,'c' type_cd from dual union all
           select 33 id,'b' type_cd from dual union all
           select 33 id,'b' type_cd from dual union all
           select 33 id,'c' type_cd from dual union all
           select 33 id,'d' type_cd from dual union all
           select  5 id,'c' type_cd from dual union all
           select  5 id,'c' type_cd from dual
select  id,
        type_cd
  from  (
         select  id,
                 type_cd,
                 count(distinct type_cd) over(partition by id) cnt,
                 row_number() over(partition by id,type_cd order by 1) rn
           from  t
  where type_cd = 'c'
    and cnt     = 1
    and rn      = 1
        ID T
         2 c
         5 c
SQL>SY.

Similar Messages

  • How to return complex data to PL/SQL pkg from java running in JVM

    Hi, I don't know where could I post this question, so I post it here.
    In Oracle, we could create object as type, and can pass it to Java (powered by JDBC I guess, but I don't know how to, if some one know, please tell me where could get the good document to teach me about this), but is there any way could return complex data (maybe in Oracle Object Type) to PL/SQL (not using long & seperated by sign string / using middle table)?
    If you know, please tell me how to / tell me the url or book name for how to do this, thanks!

    with t as (
               select  1 id,'a' type_cd from dual union all
               select  1 id,'a' type_cd from dual union all
               select  1 id,'b' type_cd from dual union all
               select  2 id,'c' type_cd from dual union all
               select 33 id,'b' type_cd from dual union all
               select 33 id,'b' type_cd from dual union all
               select 33 id,'c' type_cd from dual union all
               select 33 id,'d' type_cd from dual union all
               select  5 id,'c' type_cd from dual union all
               select  5 id,'c' type_cd from dual
    select  id,
            type_cd
      from  (
             select  id,
                     type_cd,
                     count(distinct type_cd) over(partition by id) cnt,
                     row_number() over(partition by id,type_cd order by 1) rn
               from  t
      where type_cd = 'c'
        and cnt     = 1
        and rn      = 1
            ID T
             2 c
             5 c
    SQL>SY.

  • How can you change data on a SQL 2012 application database that uses availability groups from BizTalk server?

    If you use the WCF-SQL adapter it is recommend that you set UseAmbientTransaction to true if you are changing data. I think this requires MSDTC to be enabled on the SQL server that you are changing the data on. (http://msdn.microsoft.com/en-us/library/dd787981.aspx)
    I think that Availability groups does not support MSDTC. (http://msdn.microsoft.com/en-us/library/ms366279.aspx).
    How can you change data on a SQL 2012 application database that uses availability groups from BizTalk server?

    Hi,
    Yes, Availability groups doesn't support MSDTC. Please refer to the similar discusison which maybe helpfull:
    http://dba.stackexchange.com/questions/47108/alwayson-ag-dtc-with-failover
    http://stackoverflow.com/questions/17179221/msdtc-in-always-on-availability-groups

  • How to filter the data on Reports from collected from differnet Agents

    1) I have to write a Plug-in which would fetch the same type of data from 7 Agents. I need to generate the report for each Agent separately,This plug-in will be deployed in various different environment. So I will not know the host name as it will be deployed different environment. Can anyone suggest how to filter the data for each agent from the table. I see one solution of using Bind variable for the Target GUID in PL/SQL file. Can you please suggest if there is any other better way of doing this.????
    Also Can you please suggest what are the best ways to debug the OEM Plug-in?
    Thanks Anyway.....

    What I mean filtering data means displaying data for each Agent Seperatly. Assume I have collected Filesystem data from 5 Agents (5 different server). Now I want do display file system data for Agent1 (server 1). How would I fetch it from MGMT$Metric_Current. Currently I use a bind variable
    ??EMIP_BIND_TARGET_GUID?? to filter the data for a Agent from MGMT$Metric_Current view. I compare Target Name entered while deploying Plug-in with the Target_Name column of specified view.Is there any other way of fetching data from this table for a Agent?
    I hope I am prety clear now. My Problem is IO dont want to force user to enter exact Server name while deploying Plug-in.
    Thanks......

  • How to filter the data in different sections (e.g. Report Footers)?

    Hi,
    I am using Crystal Reports 11 to generate cross-tables.
    I plan to generate 3 cross-tabs, and each cross-table will be put in a section. For example, cross-tab1 in Report Footer a; cross-tab2 in Report Footer b; cross-tab3 in Report Footer c.
    I know use "Select Expert" to filter data. But, it seems that "Select Expert" filters data for the whole report.
    I want to filter the data for each cross-table separately. For example, filter cross-tab1 based on condition1; filter cross-tab2 based on condition2; filter cross-tab3 based on condition3.
    How to filter the data in different sections (e.g. Report Footers)?
    Thank you in advance.

    Hi,
    Now that you've inserted the subreport just right-click the sub-report and click Edit. The Design page for sub-report should open up.
    You can now insert the cross-tab on the Report Header and insert a record selection formula of your choice.
    Also, suppress all the other sections of the subreport so the Main report only shows the crosstab without any spaces.
    Do the same for all the subreports.
    -Abhilash

  • Write / store xml data in Xe and retrieve stored data using pl/sql

    Hi to all,
    i'm searching a tutorial on:
    A - how to write / store xml data in Xe and retrieve stored data using pl/sql
    I don't want to use other technologies, because i use htmldb and my best practice is with pl/sql.
    I was reading an ebook (quite old maybe) however it's about oracle 9 and it's talking about xmltype:
    1 - I don't understand if this is a user type (clob/varchar) or it's integrated in Oracle 9 however i will read it (it's chapter 3 titled Using Oracle xmldb).
    Please dont'reply here: i would be glad if someone can suggest me a good tutorial / pdf to achieve task A in Oracle XE.
    Thanx

    Thank you very much Carl,
    However my fault is that i've not tried to create the table via sql plus.
    Infact i was wrong thinking that oracle sql developer allows me to create an xmltype column via the create table tool.
    however with a ddl script like the following the table was created successfully.
    create table example1
    keyvalue varchar2(10) primary key,
    xmlcolumn xmltype
    Thank you very much for your link.
    Message was edited by:
    Marcello Nocito

  • Replace ' with ' in my data using pl/sql

    I want to replace all occurrence of special characters like ' with ' in my data using pl/sql.
    How can I achieve this?

    Thank you for your quick reply. My code is:
    DECLARE
    firstname varchar2(200) := 'cccc&a p o s;dddd'; ---> Please remove spaces between a p o s. Combine them as apos
    lastname varchar2(200) := 'eeee';
    BEGIN
    dbms_output.put_line('Before changing : firstname :' || firstname);
    dbms_output.put_line('After changing: firstname :' || replace(LastName, "'" , "'") );
    END;
    When I run this in sqlplus, I see:
    SQL> @EscapeCharTesting.sql
    Enter value for apos:
    So I want to change all occurences of "&a p o s;" to CHR(39)

  • How to filter the data in dropdown?

    Hello,
    How to filter the data
    I got all the project name in dropdown when you select the project name in other textbox the project id will come automatically.
    so I want to get only those project name that is assigned to that particular user.
    I have
    ProjectName(dropdown),
    ProjectId(Textbox),
    Employee code(Unique value),
    employee Id (Unique for particular employee means if User A works on 5 projects so for all 5 projects the employee Id will be same),
    Project Id( 5 projects 5 different id)
    I didnt get the exact formula or I have to use any javascript code.Any help...
    Thanks,

    If I am understanding correctly, you want to populate a drop down with values from a list.
    Using InfoPath:
    right click on the drop down to be populated, and choose drop down list box properties.
    add the list with the values as a data source.
    click the filter box next to entries.
    select the field you want from the other list.
    click filter data.
    set the filter (click AND if you need more lines).
    click OK on any dialogs you need to to get back to the editor.
    Test your form.

  • How to find Installation Date for each SQL installation

    Dear All,
    I need a basic info. How to find installation date of each SQL instance (My environment running with multiple standalone/cluster instances)?
    So, I need a query to find installation date easily (I don't want to check it in registry by manual). Thanks in advance...

    Hi Balmukund
    This is the same answer that (1) Prashanth posted
    from the start, letter on (2) Stan posted
    this again with the same link, and now for the third time, (3) you posted it with the same link :-)
    * This answer is correct for specific instance.
    The OP asked a solution for several instances. Therefore he should execute this on each instance. As I mentioned he can do it dynamically on all instances, for example using powershell (basic logic is, first find all instances and than post this query in a
    loop).
      Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]
    Then your answer is correct :)
    Balmukund Lakhani
    Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
    This posting is provided "AS IS" with no warranties, and confers no rights.
    My Blog |
    Team Blog | @Twitter
    | Facebook
    Author: SQL Server 2012 AlwaysOn -
    Paperback, Kindle

  • How to get Listener Information using PL/SQL code

    How to get Listener Information using PL/SQL code

    user2075318 wrote:
    How to get Listener Information using PL/SQL codeThis approach (somewhat of a hack) can be used - but it does not really provide meaningful data at application layer.
    SQL> create or replace function TnsPing( ipAddress varchar2, port number default 1521 ) return varchar2 is
      2          type THexArray is table of varchar2(2);
      3          --// tnsping packet (should be 10g and 11g listener compatible)
      4          TNS_PING_PACKET constant THexArray := new THexArray(
      5                  '00', '57', '00', '00', '01', '00', '00', '00',
      6                  '01', '39', '01', '2C', '00', '00', '08', '00',
      7                  '7F', 'FF', '7F', '08', '00', '00', '01', '00',
      8                  '00', '1D', '00', '3A', '00', '00', '00', '00',
      9                  '00', '00', '00', '00', '00', '00', '00', '00',
    10                  '00', '00', '00', '00', '00', '00', '00', '00',
    11                  '00', '00', '00', '00', '00', '00', '00', '00',
    12                  '00', '00', '28', '43', '4F', '4E', '4E', '45',
    13                  '43', '54', '5F', '44', '41', '54', '41', '3D',
    14                  '28', '43', '4F', '4D', '4D', '41', '4E', '44',
    15                  '3D', '70', '69', '6E', '67', '29', '29'
    16          );
    17 
    18          socket  UTL_TCP.connection;
    19          txBytes number;
    20          rxBytes number;
    21          rawBuf  raw(1024);
    22          resp    varchar2(1024);
    23  begin
    24          socket := UTL_TCP.open_connection(
    25                          remote_host => ipAddress,
    26                          remote_port => port,
    27                          tx_timeout => 10
    28                  );
    29 
    30          --// convert hex array into a raw buffer
    31          for i in 1..TNS_PING_PACKET.Count loop
    32                  rawBuf := rawBuf || HexToRaw( TNS_PING_PACKET(i) );
    33          end loop;
    34 
    35          --// send packet
    36          txBytes := UTL_TCP.write_raw( socket, rawBuf, TNS_PING_PACKET.Count  );
    37 
    38          --// read response
    39          rxBytes := UTL_TCP.read_raw( socket, rawBuf, 1024 );
    40 
    41          UTL_TCP.close_connection( socket );
    42 
    43          --// convert response to varchar2
    44          resp := UTL_RAW.Cast_To_Varchar2( rawBuf );
    45 
    46          --// strip the header from the response and return the text only
    47          return( substr(resp,13) );
    48  end;
    49  /
    Function created.
    SQL>
    SQL> select tnsping( '10.251.93.30' ) as TNSPING from dual;
    TNSPING
    (DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=0)(ALIAS=LISTENER))
    SQL> select tnsping( '10.251.95.69' ) as TNSPING from dual;
    TNSPING
    (DESCRIPTION=(TMP=)(VSNNUM=0)(ERR=0)(ALIAS=LISTENER))
    SQL>

  • How to increment the date using sequence?

    how to increment the date using sequence?
    01-jan-10
    02-jan-10
    30-jan-10

    794244 wrote:
    how to increment the date using sequence?
    01-jan-10
    02-jan-10
    30-jan-10This doesn't look like a task where a sequence is usefull.
    A sequence is a number generator that guarantees that multiple sessions will all get a different number.
    Even if the sequence is fetched for differnent users (=sessions) that the same time.
    This in turn means that the value returned by the sequence will depend on actions done in other sessions.
    Typical task: create a new unique primary key number. The number MUST be different in all sessions.
    In your case I guess that the same logic should work regardless of the session that executes it. So you need a "number generator" that works indepented from other session values. There are several ways to create such a numbered list.
    The basic idea is to create a select statement that simply returns as many rows as you need. And then use ROWNUM as the number generator. Examples how to do this have already been given. LEVEL works also in hierarchical queries.
    if my interpretation of your requirement is right, then all answers that really used a sequence seem to be wrong. Even if the output looks ok. At best they are just slow. To create new sequence values is a complex task and the database needs a little time for all the synchonization issues that come with it. At worst it will have gaps in the sequence because other sessions used the same value while the numbers were created.
    Edited by: Sven W. on Sep 20, 2010 2:08 PM

  • Can we use Data Pump to export data, using a SQL query, doing a join

    Folks,
    I have a quick question.
    Using Oracle 10g R2 on Solaris 10.
    Can Data Pump be used to export data, using a SQL query which is doing a join between 3 tables ?
    Thanks,
    Ashish

    Hello,
    No , this is from expdp help=Y
    QUERY                 Predicate clause used to export a subset of a table.
    Regards

  • How is the Raw data used in iPhoto. I currently shoot both jpeg and raw and import them both into iPhoto.

    How is the Raw data used in iPhoto? I currently shoot both jpeg and raw and import them both into iPhoto. What do I gain by collecting Raw data?
    Thanks

    You get more parameters for making adjustments to the image. This is not really an iPhoto question but more a general photography one. In rather simple terms here's how a digital camera works:
    You expose an image. A lot of data is gathered in by the sensor. But it's just a bug lump of data and not very useful in that form.
    In cameras that shoot jpeg that mass of data is interpreted/processed into an actual image, and the image is stored in a jpeg file. (that's a process broadly analogous to developing a film). The decisions that go into making that interpretation are all made by an engineer somewhere, back when the camera was developed.
    If you shoot Raw, then what you do is take that mass of data, and rather than working to the decisions made by that engineer, you develop the shot - you run the digital darkroom.
    Why would you do this? Take on all this extra work? Well one of three reasons: a: you think you can do a better job than that engineer. b: you just prefer the result you get when you develop yourself or c: you're a hopeless shooter and raw means you have more options to fix the mistakes you made in the camera. (That's why I do it.)
    Here endeth the two dollar tour. So, basically, if you're happy with what your camera produces in Jpeg then there's really no need to shoot Raw.
    There's no need at all to shoot Raw+Jpeg as iPhoto creates a jpeg preview when you import, so you're just wasting space.

  • How to display today date using formcalc

    Hi all,
    how to display today date using formcalc, eg April 20, 2009?
    Thanskks

    Num2Date(Date(), "DD/MMM/YYYY", "de_GB")

  • How to insert the data using matrix

    Hi
      All how to insert the data using matrix feild
      plz help me
       thanks
        Loy

    Hi Loy,
    The best way to fill an entire matrix is to use a DBDatasource, here is some sample code:
    Dim oForm As SAPbouiCOM.Form
    oForm = SBO_App.Forms.Item("YourFormTypeID")
            '1. Add a DBDataSource to the form
            oForm.DataSources.DBDataSources.Add("OUSR")
            Dim oColumnDBS As SAPbouiCOM.Column
            Dim oColumnUDS As SAPbouiCOM.Column
            Dim i As Integer
            Dim GenEdt As SAPbouiCOM.EditText
            Dim oMatrix As SAPbouiCOM.Matrix
            Dim oColumns As SAPbouiCOM.Columns
            Dim oDBDataSource As SAPbouiCOM.DBDataSource
            oMatrix = oForm.Items.Item("7").Specific
            oColumns = oMatrix.Columns
            '2. DBDataSource: Binding a field / alias of the table to a column
            oColumnDBS = oColumns.Item("V_1")
            oColumnDBS.DataBind.SetBound(True, "OUSR", "U_NAME")
            '3. getting the data sources bound to the form
            oDBDataSource = oForm.DataSources.DBDataSources.Item("OUSR")
            oMatrix.Clear()
            ' Querying the DB Data source
            oDBDataSource.Query()
            ' Adding the data to the matrix
            oMatrix.LoadFromDataSource()
    When you want to fill a specific field use :
    GenEdt = oMatrix.Columns.Item("V_2").Cells.Item(1).Specific
                    GenEdt.String = "Hello"

Maybe you are looking for