Getting the first and the last record with analytics

I have a table called horario (time) which has the following columns: card_number,
card_holder_name, card_reader_location and time. I came up with the following sql
statement that gives me the current row and the next row so I can subtract one from
the other and see how much time elapsed between them. As you can see below:
SELECT *
FROM   (SELECT card_number,
               reader card_reader_location,
               hora TIME,
               lead(reader) over(PARTITION BY card_number ORDER BY hora) next_card_reader_location,
               lead(hora) over(PARTITION BY card_number ORDER BY hora) next_time_action
        FROM   horario
        WHERE  card_number = '26965'
        AND    to_char(hora, 'DD-MON-YYYY') =
               to_date('03-JAN-2006', 'DD-MON-YYYY')
        GROUP  BY card_number,
                  reader,
                  hora)
CARD_NUMBER               CARD_READER_LOCATION                               TIME                 NEXT_CARD_READER_LOCATION                          NEXT_TIME_ACTION                                                                                                                                      
26965                     BASEMENT DOOR READER  IN                           03-JAN-2006 07:26:00 BASEMENT DOOR READER  OUT                          03-JAN-2006 14:44:00                                                                                                                                  
26965                     BASEMENT DOOR READER  OUT                          03-JAN-2006 14:44:00 BASEMENT DOOR READER  IN                           03-JAN-2006 14:45:00                                                                                                                                  
26965                     BASEMENT DOOR READER  IN                           03-JAN-2006 14:45:00 BASEMENT DOOR READER  OUT                          03-JAN-2006 16:07:00                                                                                                                                  
26965                     BASEMENT DOOR READER  OUT                          03-JAN-2006 16:07:00                                                                                                                                                                                                           Now I need to come up with a sql query that will subtract the time field of the very
last row (16:07:00) and the time field of the very first row (07:26:00) so I know how
many hours were worked on that specific date. Can I do that using analytics ? If so,
how ?
thanks !
gleisson henrique

In a way you can get those min/max dates in the same row and subract them in the outer select just like this
SELECT *
FROM (SELECT card_number,
reader card_reader_location,
hora TIME,
lead(reader) over(PARTITION BY card_number ORDER BY hora) next_card_reader_location,
lead(hora) over(PARTITION BY card_number ORDER BY hora) next_time_action
max(hora) over(PARTITION BY card_number) max_hora,
min(hora) over(PARTITION BY card_number) min_hora
FROM horario
WHERE card_number = '26965'
AND to_char(hora, 'DD-MON-YYYY') =
to_date('03-JAN-2006', 'DD-MON-YYYY')
GROUP BY card_number,
reader,
hora)

Similar Messages

  • How to get the first and the last record of every month within a time range in sql

    I am trying to get the first record and the last record of each and every month in a given date range using sql. I have a sample code
    where i have just selected everything within the date range now i have to extract the first and the last records of each and every month.
    SELECT PurOrderNum,
    OrderDate
    FROM Purchasing.PurOrder
    WHERE OrderDate >= '2013-02-28'
    AND OrderDate <= '2014-12-29'

    SELECT PurOrderNum,
    OrderDate
    FROM
    SELECT PurOrderNum,
    OrderDate,
    MAX(OrderDate) OVER (PARTITION BY DATEDIFF(mm,0,OrderDate)) AS MaxDate,
    MIN(OrderDate) OVER (PARTITION BY DATEDIFF(mm,0,OrderDate)) AS MinDate
    FROM Purchasing.PurOrder
    WHERE OrderDate >= '2013-02-28'
    AND OrderDate <= '2014-12-29'
    )t
    WHERE OrderDate = MaxDate
    OR OrderDate = MinDate
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Get the first and the last date of a week

    Hi all
    I need to get the first and the last date of a specific week.
    I need a function that returns two date passing it just one date.
    The function has to calculate the first and the last date of the week of the argument date.
    hope to be clear
    regards

    goiters,
    I need to get the first and the last date of a specific week.Yup, and what's the first day of the week in your part of the world, is it Sunday or Monday?
    I need a function that returns two date passing it just one date.No you don't, just add 7 days to the start of the week.
    hope to be clearWell, you can hope.
    Keith.
    Message was edited by: corlettk - now I hope to clear ;-)

  • How to view the first and the last frame of a clip or a selected range in the time line?

    How to view the first and the last frame of a clip directly or in a selected range in the time line ? Up arrow and down arrow keys changes only between the first frame of the consecutive clips. Even ; and ' does the same. I mean what is the shortcut keys for first to last and last to first frame of a clip? Help please.

    SELECT PurOrderNum,
    OrderDate
    FROM
    SELECT PurOrderNum,
    OrderDate,
    MAX(OrderDate) OVER (PARTITION BY DATEDIFF(mm,0,OrderDate)) AS MaxDate,
    MIN(OrderDate) OVER (PARTITION BY DATEDIFF(mm,0,OrderDate)) AS MinDate
    FROM Purchasing.PurOrder
    WHERE OrderDate >= '2013-02-28'
    AND OrderDate <= '2014-12-29'
    )t
    WHERE OrderDate = MaxDate
    OR OrderDate = MinDate
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • My iPhone rejects my passcode when I enter it the first and the second time

    My iPhone rejects my passcode when I enter it the first and the second time. Why?

    Is it random? Does it occasionally accept the passcode, or does the passcode seem to be changed?
    See Kappy's list on how to deal with passcode problems:
    Re: Passcode being rejected   https://discussions.apple.com/message/23376400#23376400

  • How can I distinguish between the first and the rest in Smartforms??

    I have made an Invoice in Smartform. I have to take three copies of that. In the first copy it will be printed "ORGINAL INVOICE" and in the next copies it will print "Duplicate copy".  How can I distinguish between the first and the rest in Smartforms??
    Regards,
    Subhasish

    >
    Subhasish Ganguly wrote:
    > I have made an Invoice in Smartform. I have to take three copies of that. In the first copy it will be printed "ORGINAL INVOICE" and in the next copies it will print "Duplicate copy".  How can I distinguish between the first and the rest in Smartforms??
    Hello Vamshi,
    As per the OP's requirement he has to print 3 copies of the invoice. Which according to my understanding should be printed at the same time ? May be i am wrong in interpreting this.
    You must be knowing you can control the print params of the SmartForms in CONTROL_PARAMETERS where you set the NO_DIALOG & in the OUTPUT_OPTIONS pass the number of copies.
    I think the solution you have proposed the "Original Copy" will be printed only once. (Correct me if i am wrong)
    Every time the user prints the invoice again he will be getting a "Duplicate Copy". If this is what the OP wants the logic is perfect
    Cheers,
    SUhas

  • When was the first and last login of a db user

    Hi @ all,
    I'm trying to find out the first and the last login of a special db user at an Oracle 10g (10.2.0.1.0) Instance.
    How can I do that?
    Thanks and best regards,
    David

    What Nicholas said is true, but depending what you are looking for, you may also search/review audit files created by everytime a sysdba or sysoper session was created by looking in your audit directory.
    From within sqlplus, "show parameter audit"
    Then, go to that directory and you will see hundreds/thousands of audit files for each time a sysdba or sysoper session was started.
    Within those logs are entries such as:
    Tue Mar 12 16:00:00 2013 -04:00
    LENGTH : '155'
    ACTION :[7] 'CONNECT'
    DATABASE USER:[1] '/'
    PRIVILEGE :[6] 'SYSDBA' <=========== sysdba or sysoper (I believe this is all that is captured.)
    CLIENT USER:[6] 'oracle' <=========== shows the OS user that connected to the database
    CLIENT TERMINAL:[0] ''
    STATUS:[1] '0'
    DBID:[10] '1321231341'

  • How to find FIRST and the LAST date of the month.

    Hello,
    I want to find the first and the last date of the current month through query. How is it possible please help.
    For example if the current month is july. The first date should be 01-JUL-2006 and the last date would be 31-JUL-2006.
    Please help me.
    Regards,
    Imran Baig

    Like this?
    SQL> select trunc(sysdate,'MM') "First_Day",
      2        last_day(sysdate) "Last_Day" from dual;
    First_Day Last_Day
    01-JUL-06 31-JUL-06
    SQL> select trunc(to_date('10-FEB-04'),'MM' ) "First_Day",
      2       last_day(to_date('10-FEB-04')) "Last_Day" from dual;
    First_Day Last_Day
    01-FEB-04 29-FEB-04

  • How to get the first and last record

    Hai All
    I have table called T1 and there are more than 8 lakhs records and i have a column called Timestamp so i need to get the first record value and time stampvalue and last record and time stamp value so that i can conclude that For Example
    form 13 june to 15 june data are here
    Kind Regards
    SrikkanthM

    Something like this can also indicate the first and last rows as you query...
    SQL> select empno, ename, hiredate
      2        ,case row_number() over (order by hiredate)
      3           when 1 then 'First Row'
      4           when count(*) over () then 'Last Row'
      5         end as flag
      6  from emp;
         EMPNO ENAME      HIREDATE            FLAG
          7369 SMITH      17/12/1980 00:00:00 First Row
          7499 ALLEN      20/02/1981 00:00:00
          7521 WARD       22/02/1981 00:00:00
          7566 JONES      02/04/1981 00:00:00
          7698 BLAKE      01/05/1981 00:00:00
          7782 CLARK      09/06/1981 00:00:00
          7844 TURNER     08/09/1981 00:00:00
          7654 MARTIN     28/09/1981 00:00:00
          7839 KING       17/11/1981 00:00:00
          7900 JAMES      03/12/1981 00:00:00
          7902 FORD       03/12/1981 00:00:00
          7934 MILLER     23/01/1982 00:00:00
          7788 SCOTT      19/04/1987 00:00:00
          7876 ADAMS      23/05/1987 00:00:00 Last Row
    14 rows selected.
    SQL>

  • I've bought the season 1 of "The Wire" (7episodes), when I synchronize with my PC, it only charge the first and last episodes and not the 5 episodes in between ??

    I've bought the season 1 of "The Wire" (7episodes), when I synchronize with my PC, it only charge the first and last episodes and not the 5 episodes in between ??

    Hello spinozette,
    I am sure you are eager to download and watch Season 1 of The Wire.  I found a couple of resources that might help with downloading this purchase.
    First, I recommend checking to see if the download was interrupted.  You can use the steps in this article:
    iTunes: How to resume interrupted iTunes Store downloads
    http://support.apple.com/kb/HT1725
    If the episodes do not download after following the steps in that article, I recommend trying to download the episodes from the list of past purchases. You can find the steps to do this in the section titled "Apps, Books, Music, Movies, or TV shows on a computer" in the following article:
    Downloading past purchases from the App Store, iBookstore, and iTunes Store
    http://support.apple.com/kb/HT2519
    If you are still not able to download the rest of the season, I recommend reporting this issue to the iTunes Store:
    How to report an issue with your iTunes Store, App Store, Mac App Store, or iBooks Store purchase
    http://support.apple.com/kb/HT1933
    Thank you for using Apple Support Communities.
    Best,
    Sheila M.

  • How can I display the first and last name using a paramater as employee ID?

    Hi SAP,
    I have a parameter that is called {? Employee ID}.   What I want to do is display the first and last name based on the employee ID value entered in {? Employee ID} in the page header of the report.  Right now, when I put the following formula in the page header only some pages get the right result while other pages dont....
    if table.employeeid = {? Employee ID} then
    table.firstname" "table.lastname
    It appears as though if the first record in the details section on the beginning of each page happens to be the employee under {? Employee ID} then it prints it correctly, if it isn't I get a null value in the page header.
    Anyone have any ideas?
    Z

    Hi Try this,
    Whileprintingrecords;
    if ={?EmpID} then
    Also check the option "Default values for null" in the formula editor.
    Regards,
    Vinay

  • Chunk expressions: Need the first and last char position from member.word[x]?

    I need to build a linear list of the string positions of the
    first and last character of each word in a string. For example if I
    have the string myPet = “DOG CAT FISH” then myList =
    [[1,3],[5,7],[9,12]]
    myPet.word[x] will let me access the individual words but
    I’m not sure how to get the char position of the beginning
    and end of each. Please help, it’s Friday and my brain has
    left for the weekend.

    Touche, Sean.
    "Sean Wilson" <[email protected]> wrote in
    message
    news:fqa8ap$bga$[email protected]..
    > Hi Craig,
    >
    > Your's fails if any word is repeated. Try it with "DOG
    CAT FISH DOG"
    >
    > This one seems to work, although there are probably more
    efficient ways to
    > go about it. A regular expression and the PRegEx xtra
    would certainly be
    > quicker, especially as the string gets longer
    >
    > on mGetWordBoundaries aString
    > -- basic error check
    > if stringP(aString) = 0 then return []
    > if length(aString) = 0 then return []
    >
    > lWhitespace = [SPACE, TAB, RETURN, numToChar(10)]
    > tStart = 1
    > tChar = aString.char[tStart]
    > repeat while lWhitespace.getPos(tChar)
    > tStart = tStart + 1
    > tChar = aString.char[tStart]
    > end repeat
    >
    > lPositions = []
    > repeat with w = 1 to aString.word.count
    > tEnd = tStart + aString.word[w].char.count - 1
    > lPositions.append([tStart, tEnd])
    > tStart = tEnd + 1
    > tChar = aString.char[tStart]
    > repeat while lWhitespace.getPos(tChar)
    > tStart = tStart + 1
    > tChar = aString.char[tStart]
    > end repeat
    > end repeat
    > return lPositions
    > end

  • I have an attachment to my iPod Classic that allows me to record. However, when the hard drive died on my last computer I lost the software that allowed me to transfer files for burning CD's or email, etc. I don't remember where I got the software and the

    I have an attachment to my iPod Classic that allows me to record. However, when the hard drive died on my last computer I lost the software that allowed me to transfer files for burning CD's or email, etc. I don't remember have an attachment to my iPod Classic that allows me to record. However, when the hard drive died on my last computer I lost the software that allowed me to transfer files for burning CD's or email, etc. I don't remember where I got the software and the package with the instructions is long gone. Anyone know where to get it?

    What is the make and model of this recorder?  Do you have that information available?
    You can still use iTunes to transfer and manage your recorded audio.
    iPod: Recording voice memos
    B-rock

  • SQL Selecting the first and last entries for each day

    Hello SQL experts,
    I hope you can help with this.. I have a table (could have 1M or more rows in it) see structure below. I am looking to get the first and last date/times for each employee for each day. I also need the location GUID for the first read.
    EmployeeGUID (uniqueidentifier datatype)
    LocationGUID (uniqueidentifier datatype)
    DateTime (DateTime datatype)
    12345678-0000-0000-0000-000000000000
    11111111-0000-0000-0000-000000000000
    04/12/2014 07:00:01
    12345678-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/12/2014 10:40:05
    12345678-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/12/2014 17:04:02
    44422222-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/14/2014 08:00:00
    44422222-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/14/2014 14:00:03
    44422222-0000-0000-0000-000000000000
    33333333-0000-0000-0000-000000000000
    04/15/2014 07:49:00
    44422222-0000-0000-0000-000000000000
    11111111-0000-0000-0000-000000000000
    04/15/2014 09:00:01
    This would be the ideal output (I can do without the TotalTimeInHours):
    EmployeeGUID (uniqueidentifier datatype)
    LocationGUID (uniqueidentifier datatype)
    FirstRead (DateTime datatype)
    LastRead (DateTime datatype)
    TotalTimeInHours
    12345678-0000-0000-0000-000000000000
    11111111-0000-0000-0000-000000000000
    04/12/2014 07:00:01
    04/12/2014 17:04:02
    Total in hours between the first and last read.
    44422222-0000-0000-0000-000000000000
    22222222-0000-0000-0000-000000000000
    04/14/2014 08:00:00
    04/14/2014 14:00:03
    44422222-0000-0000-0000-000000000000
    33333333-0000-0000-0000-000000000000
    04/15/2014 07:49:00
    04/15/2014 09:00:01
    I would post what I have tried so far but I have been trying many different types of queries over the last few days. In short I need the employees first and last reads for each date. They could have many entries per date or just 1. I am certain that this
    is a trivial thing for a SQL expert but not trivial for me :).
    Thank you in advance!

    Thank you!
    This is almost what I need. The LocationGUID has to be included in the output. When I include it, I have to put it in the Group By clause. When I do that the reads are based on the LocationGUID (see below).
    ** I added a few more data entries and included the LocationGUID in the output.
    ***** SQL ***********
    CREATE TABLE test(  EmployeeGUID  uniqueidentifier, LocationGUID  uniqueidentifier, DateTimeCol  DateTime )Insert into test values
    ('12345678-0000-0000-0000-000000000000','11111111-0000-0000-0000-000000000000','04/12/2014 07:00:01')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/12/2014 10:40:05')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/12/2014 17:04:02')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/12/2014 19:00:00')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/14/2014 08:00:00')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/14/2014 14:04:03')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/15/2014 07:49:00')
    ,('44422222-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/15/2014 09:00:01')
    ,('12345678-0000-0000-0000-000000000000','11111111-0000-0000-0000-000000000000','04/13/2014 10:40:05')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/13/2014 17:04:02')
    ,('12345678-0000-0000-0000-000000000000','22222222-0000-0000-0000-000000000000','04/13/2014 19:00:00')
    ;with mycte as (
    SELECT *, row_number() OVER(partition by EmployeeGUID, Cast(DateTimeCol as date)  Order by  DateTimeCol) rnASC,
     row_number() OVER (partition by EmployeeGUID, Cast(DateTimeCol as date)  Order by  DateTimeCol DESC) rnDESC
    FROM    test)
    Select EmployeeGUID ,Cast(DateTimeCol as date) dt,LocationGUID,
    Max(Case when rnASC=1 Then DateTimeCol End) minDateTimeCol
    ,Max(Case when rnDESC=1 Then DateTimeCol End ) maxDateTimeCol
    ,Datediff(minute, Max(Case when rnASC=1 Then DateTimeCol End) ,Max(Case when rnDESC=1 Then DateTimeCol End ) )/60.0  TotalTimeInHours
    from mycte
    Group by EmployeeGUID, LocationGUID,Cast(DateTimeCol as date)
    Order by dt,EmployeeGUID
    drop TABLE test
    **** OUTPUT **********
    EmployeeGUID
    dt
    LocationGUID
    minDateTimeCol
    maxDateTimeCol
    TotalTimeInHours
    12345678-0000-0000-0000-000000000000
    2014-04-12
    11111111-0000-0000-0000-000000000000
    2014-04-12 07:00:01.000
    NULL
    NULL
    12345678-0000-0000-0000-000000000000
    2014-04-12
    22222222-0000-0000-0000-000000000000
    NULL
    2014-04-12 19:00:00.000
    NULL
    12345678-0000-0000-0000-000000000000
    2014-04-13
    11111111-0000-0000-0000-000000000000
    2014-04-13 10:40:05.000
    NULL
    NULL
    12345678-0000-0000-0000-000000000000
    2014-04-13
    22222222-0000-0000-0000-000000000000
    NULL
    2014-04-13 19:00:00.000
    NULL
    44422222-0000-0000-0000-000000000000
    2014-04-14
    22222222-0000-0000-0000-000000000000
    2014-04-14 08:00:00.000
    2014-04-14 14:04:03.000
    6.066666

  • Please, help! After upgrading to Yosemite, my dock has disappeared, along with the dashboard and the wallpaper! Can anyone help? I'm using a MacBook Pro, retina, bought it last year.

    Please, help!
    After upgrading to Yosemite, my dock has disappeared, along with the dashboard and the wallpaper! Can anyone help? I'm using a MacBook Pro, retina, bought it last year.
    Thanks

    Have you been trying to download from the app store? Did you get a message?
    As a suggestion, you might go to an Apple store (genius bar appointment) for help. As far as I know, there should be no charge.
    Barry

Maybe you are looking for

  • Problem printing to a PC based HP from MAC OSX 10.3.9 w/ router

    I have the following Belkin Router; F5D7230-4. The router is hardwired to the PC and has a F380 (F300 series) HP printer USB hardwired. I also have a iMAC G5 OS x 10.3.9 which is online, connected to the router via a ethernet cable. I have no wireles

  • Unable to Move Parts of a Table that are LOB's

    Hello - I'm running Oracle 8.1.7.4. I moved a table from one tablespace to another by issuing the following command: alter tableA move tablespace SomeTS; I noticed that the table now resides in SomeTS, but the LOB data types still reside in the OldTS

  • Need opinions / benefits of previous experience - PD and external document repository integrations ....

    We are using PD in support of our EA Program. Current efforts have been focused on getting started from a zero base and working on ensuring we have a consistent baseline for the 100(ish) business systems that this effort encompasses. This has largely

  • Adding a field to Shopping card item level.

    Hi Experts, I want to add field in the shoppping card item level, i have refer OSS note 458591, as per that i have to create one structure with the name Ci_bbp_item_sc and add the required field in that, can anyone tell me that by simplay creating st

  • XPath - limited logical operators?

    Hi out there! Currently I am experiencing an XPath problem, evaluating an XML file with it. Imagine I got an XML file like this: <xml? version="1.0" encoding="UTF-8"?> <OverallSet> <Set1> <group_of_fields> <requesting_component_command>WUZ</requestin