How can I count patterns of multiple rows in a table

I just can't wrap my head around a query I need to identify the unique set of patterns with a table...by patterns I mean the following...
This is medical procedural data, wherein the first procedure code is followed by 0 or more procedures in a sequence for each case. I need to find out how many of each sequence of procedures exist in the table from all the cases...
row_id caseid proc_code sequence
1 1 A 1
2 1 B 2
3 2 C 1
4 3 A 1
5 3 B 2
So in this example data set I would like an output like this (something similar that would produce the number of times A followed B...and so on)
row_id proc_set count(*)
1 A-B 2
2 C 1
If someone could at least point me in a direction, I'd appreciate it...thanks ron.

Interesting variation, Solomon.Yes, but gives different results if there are more than two linked procedures:
SQL> with t as (
  2             select 1 case_id,'A' proc_code,1 seq from dual union all
  3             select 1,'B',2 from dual union all
  4             select 1,'C',3 from dual union all
  5             select 2,'C',1 from dual union all
  6             select 3,'A',1 from dual union all
  7             select 3,'B',2 from dual
  8            )
  9  select  proc_set,
10          count(*) cnt
11    from  (
12           select  case level
13                     when 1 then proc_code
14                     else connect_by_root(proc_code) || '-' || proc_cod
15                   end proc_set
16             from  t
17             where connect_by_isleaf = 1
18             start with seq = 1
19             connect by case_id = prior case_id
20                    and seq     = prior seq + 1
21          )
22    group by proc_set
23  /
PROC_SET                    CNT
A-B                           1
C                             1
A-C                           1While we get
SQL> with t as (
  2  select 1 row_id, 1 caseid, 'A' proc_code, 1 sequence from dual union
  3  select 2, 1, 'B', 2 from dual union
  4  select 4, 2, 'C', 1 from dual union
  5  select 3, 1, 'C', 3 from dual union
  6  select 5, 3, 'A', 1 from dual union
  7  select 6, 3, 'B', 2 from dual)
  8  select row_number() over (order by proc_set) row_id,  proc_set, count(0) from (
  9  select ltrim(sys_connect_by_path(proc_code,'-'),'-') proc_set
10    from t
11  where connect_by_isleaf=1
12  connect by prior sequence+1 = sequence and prior caseid=caseid
13  start with sequence=1)
14  group by proc_set;
    ROW_ID PROC_SET               COUNT(0)
         1 A-B                           1
         2 A-B-C                         1
         3 C                             1Max
[My Italian Oracle blog|http://oracleitalia.wordpress.com/2009/12/29/estrarre-i-dati-in-formato-xml-da-sql/]

Similar Messages

  • How can I Add and save new row in data table?

    Hello All,
    I want to add new row in the jsf page with data and save it.
    I have data table with rows from database..
      <h:form id="test">
            <h:dataTable id="hh" value="#{MyBean.dataList}" var="list">
              <h:column>
              <h:outputText value="#{list.name}"/>          
              </h:column>         
              <h:column>
              <h:outputText value="#{list.lastName}"/>          
              </h:column>         
              <h:column>
              <h:outputText value="#{list.phone}"/>          
              </h:column>         
            </h:dataTable>
            <h:commandButton id="sd" action="#{MyBean.addNewRow" value="Add Row" />
            <h:commandButton id="save" action="#{MyBean.updateList" value="Save Data />
          </h:form>
    {code}
    i understand action with save to database, but still I could not find right way to add new row from jsf page.....
    I want add new row, add new name, lastname, and save it....
    Edited by: armen on Feb 20, 2009 12:39 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Thanks, but your example consist from too many parts and I could not join all components for understatnding all proccess.

  • How to insert multiple rows in same table at once

    hi ,
    How can I insert more than one row in the same database table on single submit button.
    (i am using the ADF , EJB and Toplink for this example.)
    EMPLOYEEand DEPARTMENT tables will hold a common coloum deptno
    The method I have tried is as follows.
    I have created the UI that holds EMPLOYEE(DETAIL) details and a DEPARTMENT(MASTER) table and I have created two separate bean classes which hold the getters and setters for the corresponding tables.
    I have created a method in Department bean which will be called when we add the employee details
    public String addEmpdetails() {
    this.employeedetailslist.add(empdetails);
    return null;
    where employeedetailslist is a Arraylist and I want to pass the reference of employeebean in the array list.
    But this method will fail as I need to create the new employee bean object every time when ever I need to pass.
    How can I store values of multiple rows in bean.
    In the EJB session bean how can I commit multiple EMPLOYEE rows and DEPARTMENT values at once.

    The use of &variable in a script is actually syntax for a "substitution variable" in the SQL*Plus tool (other tools may also do the same), not an inherent part of SQL or PL/SQL itself.
    Whenever SQL*Plus is given a script it parses through it and if it encounters one of these it prompts for a value. This value is then substituted into the script before the script actually get's sent to the SQL or PL/SQL engine (process) on the database server. Once the script has gone to the database server it executes there and the results are passed back for SQL*Plus to display. However, the SQL and PL/SQL processes on the database server have no way to interface to the client machine, so they themselves cannot prompt for input from the client and you can't expect to prompt inside a loop as you are doing.
    What you need is a user interface on the client that can prompt repeatedly for values and then re-send the script, or call a procedure on the database each time. This can be done using shell scripts or dos batch files (depending on your client being unix/dos based) or using a front end application tool such as Java, .NET, Powerbuilder, PHP, Application Express (APEX) etc.

  • How can i count no rows in my database table

    plz tell me how can i count no of rows in my database table with[b] ResultSet object

    Hi ! hope this code helps you .
    We can use the count(*) to get the total no of records in the table ad then access it through the getString method .
    import java.sql.*;
    public class JdbcTest
         public static void main(String [] args ) throws Exception
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              String DBURL = "jdbc:odbc:mydsn" ;
              Connection conn = DriverManager.getConnection(DBURL);
              Statement st = conn.createStatement();
              ResultSet rs = st.executeQuery("select count(*) from table1");
              rs.next();
              System.out.println("total rec = " + rs.getString(1));     
    Cheers !

  • How can I download eBooks to multiple iPads using same apple ID?

    How can I download eBooks to multiple iPads using the same apple ID?

    Those are called iBooks. On the devices go to iTunes app and then to the Purchased section in bottom row and find the media and tap install

  • In ADF how can i insert data in multiple table if they have foreign key

    I have started working on ADF and can anybody inform me in ADF how can i insert data in multiple table if they have foreign key,please?
    Thnak you very much.

    Hello,
    Still no luck.I am surely doing silly mistakes.Anyway,Here are my workings-
    1> student_mst (id(pk),studentname) and student_guard_mst(id(fk),guardianname)
    2> created EO from both of the tables,made id in both EO as DBSequence and an association was also generated.
    3> i made that association composite by clicking the checkbox
    4> i created 2 VO from 2 EO.
    5> put those VO in Application Module.
    6> dragged and dropped 2 VO on my jspx page and dropped them as ADF Form.
    Now what to do please?

  • How can I get rid of multiple pictures at the same time?

    how can I get rid of multiple pictures at the same time?

    Adobe Bridge, lightroom and your file browser (windows explorer or Mac Finder) can select multiple pictures at once and then delete. If you are looking for more than that for information, you will need to be more specific at what your doing, what OS you have, and version of software your using. If necessary post screen shots so we can see what your doing. The more information we have the more detailed of an explaination can can give back to you.

  • How can I limit the number of rows returned by a select stat

    How can I limit the number of rows returned by a select
    statement. I have a query where I return the number of stores
    that are located in a given area.. I only want to return the
    first twenty-five stores. In some instances there may be over
    200 stores in a given location.
    I know is SQL 7 that I can set the pagesize to be 25....
    Anything similiar in Oracle 8i?
    null

    Debbie (guest) wrote:
    : Chad Nale (guest) wrote:
    : : How can I limit the number of rows returned by a select
    : : statement. I have a query where I return the number of
    : stores
    : : that are located in a given area.. I only want to return the
    : : first twenty-five stores. In some instances there may be
    : over
    : : 200 stores in a given location.
    : : I know is SQL 7 that I can set the pagesize to be 25....
    : : Anything similiar in Oracle 8i?
    : If you are in Sql*Plus, you could add the statement
    : WHERE rownum <= 25
    : Used together with an appropriate ORDER BY you
    : could get the first 25 stores.
    Watch out. ROWNUM is run before ORDER BY so this would only
    order the 25 selected
    null

  • How can I make the rolumn and row headers appear on the printed sheet?

    I am working in Numbers'09. I want to print out my chart with the column letters and row numbers showing.
    How can I make the rolumn and row headers appear on the printed sheet?

    g,
    Those annotations are called "Labels", and they are only visible during editing when a cell selection is made within the table. If you need to have the labels on your final output, you can create labels in Text Boxes and position them adjacent to the table.
    Jerry

  • How can i now the number of rows afected by the last query?

    how can i now the number of rows afected by the last query?
    For example:
    i made this update :
    update trl_trial set status = 1 /* Validation */
    where trial_id = cobject_id
    and status = 0; /* Initial */
    if NUMBERS_OF_ROWS = 0 then
    end if;
    how can i do this?
    thank u!!!!

    how can i now the number of rows afected by the last query?
    For example:
    i made this update :
    update trl_trial set status = 1 /* Validation */
    where trial_id = cobject_id
    and status = 0; /* Initial */
    if NUMBERS_OF_ROWS = 0 then
    end if;
    how can i do this?
    thank u!!!! Do the following :
    update trl_trial set status = 1 /* Validation */
    where trial_id = cobject_id
    and status = 0; /* Initial */
    if(SQL%ROWCOUNT = 0 ) then
    else
    end if;
    you can also declare a variable and do
    myvar := SQL%ROWCOUNT;
    SQL%ROWCOUNT returna the # of rows afected by any sql
    statement, like DELETE, UPDATE

  • Urgent******how can i get the number of rows enterd by the user in a table

    Hi Frndz..
    As per my requirement i need to do the validations for the multipple rows in a table that was enterd by the user,
                   T
              The prob is how can i get that number of rows that enterd by user,
           WDMessageManager msg = wdComponentAPI.getMessageManager();
         String col1= "";
         String col2= "";
         double col3= 0;
         double col4= 0;
         double amount= 0;
         int nodesize = wdContext.nodeTest().size();
         try
         for(int i=0; i<=2 ; i++)
                   col1 = wdContext.nodeTest().getTestElementAt(i).getCol1();
                 //msg.reportSuccess("col1 size is :"+col1);
                   col2 = wdContext.nodeTest().getTestElementAt(i).getCol2();
                   col3 = wdContext.nodeTest().getTestElementAt(i).getCol3();
                   col4 = wdContext.nodeTest().getTestElementAt(i).getCol4();
                    amount = wdContext.nodeTest().getTestElementAt(i).getAmount();
              if(col1 == "" )
                        msg.reportException("Plz fil the col1 for line:",true);
                   break;
              else
              if(col2 == "" )
                                  msg.reportException("Plz fil the col2 for line:",true);
                             break;
                        else
              if(col3 <= 0)
                   msg.reportException("Plz fil the col3:",true);
                   break;
              else
                   if(col4 <= 0)
                   msg.reportException("Plz fil the col4:",true);
                   break;
              msg.reportSuccess("skvgjhdfgasdfgsjkafguisafisenvtvyeriy");
                                                       wdThis.test();
         catch (Exception e)
                   msg.reportException("strMessage in catch block",true);
         this is the code am going
    Regards
    Rajesh

    Hi,
       You can try this:
    * Let's say the table's datasource is a node called Table  and it has two attributes first & second.
    * You want to check if any of these attributes has been changed by the user or not. If they have been
    * changed then you want to do some validations against them.
      int sizeOfTable = wdContext.nodeTable().size();
      for(int i = 0; i < sizeOfTable; i++){
         IPrivate<view name>.ITableElement ele = wdContext.nodeTable().getTableElementAt(i);
         if(ele.isChangedByClient(ITableElement.<attribute name>)){
            //value has been changed, do some validation. You can get the row index using ele.index().
    Regards,
    Satyajit.

  • How can I count events during a given time with 2 counters (6025 E)

    Hi, How can I count events during a given time (1 sec for example) with 2 counters:
    what is the best way?
    how should i configurate both counter?
    i have done the 1st counter in ev_counter with the gate being the output of the 2nd; and how can i say to the 2nd to trig the first after 1 sec counting? (trig at start and at end) what are the functoins calls in NIDAQ. i am using Visual C++

    Greetings,
    When you perform event counting a gate signal can be added such that if a low signal occurs on the gate, then the counter will pause. When a high signal is seen, the counter will continue counting edges. When you install the NI-DAQ driver you should have installed the examples for Visual C++. The counter examples are found in \Program Files\National Instruments\NI-DAQ\Examples\VisualC\Ctr. Take a look at STCeventCount.C. Be sure to only use STC examples with your hardware. The E-series boards contain the DAQ-STC chip.
    Now, all you need is a gate signal with a width (high time) of 1 second. You could use an external frequency or pulse generator to do this. Or, you could just use the second counter found on your PCI-6025E board. In this
    case you could configure the second counter to generate a single pulse. Take a look at the STCgenerateSinglePulse.C example. As long as the pulse is in a high state for one second you can use it to gate (or time) your counting of events.
    Regards,
    Justin Britten
    Applications Engineer
    National Instruments

  • How can I remove the repetitive multiple daily updates from Mozilla

    Hello
    How can I remove the repetitive multiple daily updates from Mozilla?
    Within a day, each day I get prompts as: Mozilla Firefox Update is ready to install at your computer.........then I do install and update it.......then after few minutes again it asks to update the same edition.........again after logging in back few hours later it prompts me again with the same request........IT IS VERY ANNOYING!
    Thank You,
    Gene

    ''the-edmeister [[#answer-683804|said]]''
    <blockquote>
    You could allow the update to proceed - that will stop Mozilla from asking if you want to update every time you launch Firefox, as is supposed to happen.
    Any particular reason that you don't want Firefox 35.0.1 to be installed?
    </blockquote>
    Hi The EDmeister,
    Thank you for your response.
    Nevertheless, I have to repeat that I have ALREADY INSTALLED the Firefox 35.0.1 in my computer and ALLOWED IT TO PROCEED.
    The same edition is prompting me back again, and again and again, within a day, each day. I get that annoying message at the top-right hand.
    I do not want to see it every time, multiple times a day, that is the issue here, unresolved!
    Best regards,
    Gene

  • All my files in my macbook pro is saved several times. How can I delete all the multiple copies easily?

    All my files in my macbook pro is saved several times. How can I delete all the multiple copies easily?

    Moved from Cloud forum to Downloading, Installing forum
    Try running the Adobe Cleaner Tool
    http://helpx.adobe.com/creative-suite/kb/cs5-cleaner-tool-installation-problems.html

  • How can I count the participants' number in TextChatApp? (using SharedObject, FMS)

    Hi all.
    How can I count participants' number?
    If the 3st user enter the room, the 3st user have to know that how many users are in the room.
    How do I know how many users are in the room?
    Thanks in advanced.
    Kevin.

    You have server side hooks for connections coming in or being closed (including here custom code for server disconnecting users for idle purposes).
    you need to keep track of the connections I don't remember now what FMS offers out of the box. Let's assume not much.
    When connection is coming in you can choose to accept or reject it. When you accept a connection you need to add it to your existing connections array or whatever data structure you use to keep track of them. Also you need to iterate to all connected users (clients) and call a custom method "userJoined()" on them to notify that a new user has joined.
    When a user leaves you need to remove the user from the collection and also notify that it left.
    on wowza you have stuff like :
    private HashSet();
    public void onConnect(IClient client, RequestFunction function,
                AMFDataList params) {
    public void onDisconnect(IClient client) {
    public void onConnectAccept(IClient client) {
        _connectedClients.add(client); 
        sendUserJoined();
    @param client
        public void onConnectReject(IClient client) {
             _connectedClients.remove(client); 
            sendUserLeft();
        public void sendUserJoined(String userName)
            Iterator it = _connectedClients.iterator();
            while (it.hasNext()) { 
                IClient each =  it.next();
                    each.call("userLeft", userName);
    FMS has similar hooks. This is simplified but you have a rough idea. You can call clients with no parameters and then is up to client so call back for updates to the server if interested. You need to implement "userJoined" and userLeft client side also.
    C

Maybe you are looking for

  • How do I use more than one email address via Thunderbird

    I have had only one AOL email address that I used via Thunderbird. I have now created another AOL email address for a specific reason. How do I start to use this new email address via Thunderbird?

  • About interfact mapping.

    can anybody tell me! how many types interface mapping according to the mode of both interface? sync 2 async sync 2 sync async 2 async async 2 sync the case above must be appeared? please describe them respectively via each concrete scenario! thanks a

  • Help with error in invoicing tracking table

    I've figured out most of the formula to calculate the late fee based on the days past due.  However, I keep getting an error when the client actually pays on time.  I've tried dozens of different ideas, but either get a syntax error or there is one a

  • Billing,invoicing reversal

    Experts, we are in billing month April. billling has been done till march and payment also made by the consumer. Now we have to recalculate the bill only for January and February by giving different consumption.How to do this?. If it is by adjustment

  • EmpApplet can't be instantiated ERROR

    Hi,I'm having the same "tutorial.EmpApplet can't be instantiated" problem everyone else seems to be having. I've tried all the recommended solutions and nothing works. Here is a copy of the output to the Java Console using Internet Explorer. com.ms.s