How can I get a number of consecutive records?

I've broken down my problem to a simpler car usage issue. (My table has very many more lines, the types of car and car names.)

A car is used in the order, but not every day. Each row of the table represents a sequential use.
I want to know the number of times wherever it has been used in the order and then the first day and the last day of this use.
I think I need to use MORE than PARTITION, but I don't know how.

If anyone can provide a solution or point me in the right direction for the reply I really appreciate it!

Here are the data in the table:

TRANSACTION_NO CAR_TYPE CAR_NAME TRANSACTION_DATE
2 CUP D 28/02/2012 03:36:37
3 CUP D 28/02/2012 03:38:37
12 CUP D 29/02/2012 10:04:58
CUT 183 D 26/03/2012 12:18:41
CUT 184 D 26/03/2012 13:56:43
CUT 185 F-26/03 / 2012 15:24:44
CUP 186 F-26/03 / 2012 18:02:55
CUT 206 F 03/04 / 2012 00:13:48
207 CUT E 03/04/2012 05:39:29
208 CUT E 03/04/2012 08:32:02
E CUP 272 09/04/2012 11:21:26
E CUP 273 14:34:26 09/04/2012
274 CUT D 09/04/2012 17:42:25
D 275 CUT 09/04/2012 21:29:32
D 276 CUT 10/04/2012 00:31:57
349 CUT D 15/04/2012 16:41:16
CUT 350 F 15/04 / 2012 18:21:54
CUTTING 351 F 15/04 / 2012 20:10:12
CUT 376 F 19/04 / 2012 01:57:39
CUT 377 F 19/04 / 2012 05:43:06
CUT 380 F 19/04 / 2012 08:26:25
CUT 381 F-19/04 / 2012 12:19:27


This is the result I want (car note D and F have been reused twice):

CAR TimesUsed First_use_date Last_use_date
5 D 28-02-2012 03:36:37 03/26/2012 13:56:43
F 3 03/26/2012 15:24:44 04/03/2012 00:13:48
E 4 04/03/2012 05:39:29 04/09/2012 14:34:26
4 D 04/09/2012 17:42:25 04/09/2012 14:34:26
F 6 04/15/2012 18:21:54 04/19/2012 12:19:27



Here is the table and data.
CREATE TABLE CAR_USE
(
TRANSACTION_NO NUMBER (3).
CAR_TYPE VARCHAR2 (10 BYTE),
CAR_NAME VARCHAR2 (2 BYTE),
DATE OF TRANSACTION_DATE
)
LOGGING
MONITORING;
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(2, 'CUT', HAS ', TO_DATE (FEBRUARY 28, 2012 03:36:37 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(3, 'CUT', HAS ', TO_DATE (FEBRUARY 28, 2012 03:38:37 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(12, 'CUT', HAS ', TO_DATE (FEBRUARY 29, 2012 10:04:58 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(183, 'CUT', HAS ', TO_DATE (MARCH 26, 2012 12:18:41 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(184, 'CUT', HAS ', TO_DATE (MARCH 26, 2012 13:56:43 ',' ' DD/MM/YYYY HH24:MI:SS));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(185, 'CUT', 'F', TO_DATE (MARCH 26, 2012 15:24:44 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(186, 'CUT', 'F', TO_DATE (MARCH 26, 2012 18:02:55 "," MM/DD/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(206, 'CUT', 'F', TO_DATE (APRIL 3, 2012 00:13:48 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(207, 'CUT', 'E', TO_DATE (APRIL 3, 2012 05:39:29 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(208, 'CUT', 'E', TO_DATE (APRIL 3, 2012 08:32:02 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(272, 'CUT', 'E', TO_DATE (APRIL 9, 2012 11:21:26 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(273, 'CUT', 'E', TO_DATE (9 APRIL 2012 14:34:26 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(274, 'CUT', HAS ', TO_DATE (9 APRIL 2012 17:42:25 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(275, 'CUT', HAS ', TO_DATE (9 APRIL 2012 21:29:32 ',' ' DD/MM/YYYY HH24:MI:SS));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(276, 'CUT', HAS ', TO_DATE (APRIL 10, 2012 00:31:57 ',' ' DD/MM/YYYY HH24:MI:SS));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(349, 'CUT', HAS ', TO_DATE (APRIL 15, 2012 16:41:16 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(350, 'CUT', 'F', TO_DATE (APRIL 15, 2012 18:21:54 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(351, 'CUT', 'F', TO_DATE (APRIL 15, 2012 20:10:12 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(376, 'CUT', 'F', TO_DATE (19 APRIL 2012 01:57:39 "," MM/DD/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(377, 'CUT', 'F', TO_DATE (APRIL 19, 2012 05:43:06 ',' DD/MM/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(380, 'CUT', 'F', TO_DATE (19 APRIL 2012 08:26:25 "," MM/DD/YYYY HH24:MI:SS'));))
Insert into CAR_USE
(TRANSACTION_NO, CAR_TYPE, CAR_NAME, TRANSACTION_DATE)
Values
(381, 'CUT', 'F', TO_DATE (APRIL 19, 2012 12:19:27 ',' DD/MM/YYYY HH24:MI:SS'));))
COMMIT;

Hello

Welcome to the forum!

Using the technique of Difference sets , you can do it with 1 single subquery:

WITH     got_grp_id     AS
(
     SELECT     car_name, transaction_date
     ,     ROW_NUMBER () OVER ( ORDER BY      transaction_date)
           -     ROW_NUMBER () OVER ( PARTITION BY  car_name
                               ORDER BY          transaction_date
                       )         AS grp_id
     FROM    car_use
)
SELECT       car_name
,       COUNT (*)               AS times_used
,       MIN (transaction_date)       AS first_use
,       MAX (transaction_date)       AS last_use
FROM       got_grp_id
GROUP BY  car_name
,            grp_id
ORDER BY  first_use
;

For an explanation and more examples of fixed difference technique, see
{message: id = 9953384}
{message: id = 9957164}

Thanks for posting the CREATE TABLE and INSERT statements; It's very helpfuul!

Published by: Frank Kulash, 18 may 2012 16:41

Tags: Database

Similar Questions

Maybe you are looking for

  • No sound during the game NFS Rivals

    I have a HP Envy 15 J049TX.While playing NFS Rivals I don't get everything in the sounds of the game. The strange thing is that I hear for other applications I have on my system. I tried unistalling the game and install it again, updated my directx a

  • Series HP Zook: DST short Test failed

    Unable to start my computer this morning, I ran hardware diagnostics. The computer memory checking and SMART in vain check the DST short. Error code: UFH3HF-000840-XD7V7F-60SL03Product ID: G8B26UC #ABA I know that usually a DST failed test means that

  • I need DRM for windows media player XP

    I can't install the movie on my computer

  • How can I get my application code?

    How can I get my application code?I have Deskjet 1050 All - in - One J410a... please me guild!

  • Failed to create empty document

    When I try to open any management or the Device Manager I have an error mmc window that says: "cannot create document empty."If anyone knows the cause and the fix for this problem?