Consider a table that holds Internet browsing history for users/machines,
date/timed to the minute. The object is to tag all times that are separated
by previous and subsequent times by x number of minutes or less (it could
vary, and wouldn't necessarily be a convenient round number). This will
enable reporting "active time" for users (a dubious inference, but hey).
There are a lot of derivative ways of seeing this information that might be
good to get to. What's the fist and last of these sets of times? What
percentage of a given period is spanned by active times, and not? What is
the average duration of such periods? What is the average interval between
web hits during such periods? During other times?
Blah, blah. The basic problem is my principal problem. I don't have much
experience with cursors, but from what I understand it would be very good
indeed to spare them, given the number of records I anticipate working
with.
I'd be glad of any pointers.
--
Scott 29 4355
Basics: Time comes in durations, so evetns have a start and stop time.
The really good stuff can be found at the University of Arizona
website where they have a PDF copy of the Rick Snodgrass book and his
research paper.
There are many way to accomplish this, for instance:
get a set of beginnings of active periods:
select ...
from events where not exists(
---- no events in the preceding ... minutes
)
and exists(
---- events in the followinging ... minutes
)
get a set of endings of active periods:
select ...
from events where not exists(
---- no events in the following ... minutes
)
and exists(
---- events in the preceding ... minutes
)
That done, you need to match every beginning to its corresponding end.
This is very simple using row_number() available in SQL 2005
In earlier versions, you can either emulate row_number() using
identity() column in a result set, or use a join condition like this:
....
from beginnings b join ends e on b.time<e.time
where not exists(select 1 from beginnings b1 where b.time< b1.time and
b1.time<e.time)
and not exists(select 1 from endings e1 where b.time< e1.time and
e1.time<e.time)
On 30 Aug 2005 13:28:36 -0700, --CELKO-- wrote: Basics: Time comes in durations, so evetns have a start and stop time. The really good stuff can be found at the University of Arizona website where they have a PDF copy of the Rick Snodgrass book and his research paper.
Joe, without passing judgement on your basic assertion "Time comes in
durations", you must be aware that web requests, like most other events in
computing, are not ever logged as durations, but as instants. Unless you
intend to win over the writers and administrators of every web server on
the planet, we're going to have to damn well DEAL with them as events, not
durations.
Ross Presser opined thusly on Aug 30: On 30 Aug 2005 13:28:36 -0700, --CELKO-- wrote:
Basics: Time comes in durations, so evetns have a start and stop time. The really good stuff can be found at the University of Arizona website where they have a PDF copy of the Rick Snodgrass book and his research paper.
Joe, without passing judgement on your basic assertion "Time comes in durations", you must be aware that web requests, like most other events in computing, are not ever logged as durations, but as instants. Unless you intend to win over the writers and administrators of every web server on the planet, we're going to have to damn well DEAL with them as events, not durations.
Well, OTOH the telos of the click is to digest content, which consumes time
(duration). But we don't have eyeball trackers on our desktops yet, so
we're left to infer from events that there's subsequent eyeball activity --
users don't do http GETs for no reason.
But that's an abstraction -- a problematic one -- whereas indeed these are
events. Still, like vertices on a triangle, to get from one to another of
these moments you have to traverse the length of a side.
Grats to Joe for the sensible reply. I'm always slapping my forehead. Just
now I'm having trouble even with that simplicity. :-/
--
Scott
"Ross Presser" <rp******@NOSPA Mgmail.com.inva lid> wrote in message
news:1w******** ********@rosspr esser.dyndns.or g... On 30 Aug 2005 13:28:36 -0700, --CELKO-- wrote:
Basics: Time comes in durations, so evetns have a start and stop time. The really good stuff can be found at the University of Arizona website where they have a PDF copy of the Rick Snodgrass book and his research paper.
Joe, without passing judgement on your basic assertion "Time comes in durations", you must be aware that web requests, like most other events in computing, are not ever logged as durations, but as instants. Unless you intend to win over the writers and administrators of every web server on the planet, we're going to have to damn well DEAL with them as events, not durations.
You might as well give up. Joe and I had this argument I think it was a
year ago and he was just as wrong then as he is now.
AK opined thusly on Aug 30: There are many way to accomplish this, for instance:
Thanks. It's been my only clue, and was sure sensible. I thanked Joe
earlier, remiss. However, I owe him thanks for leading me toward that big
paper on temporal SQL -- that stuff's dynamite. It certainly gives an
answer to the duration/event argument: "yes." ;-)
NOW my fun is that the times I'm working with have only minute precision,
so I often get several identical times for a given user (the most logical
grouping). This presents all kinds of problems for the kinds of reporting
I'm looking at. It's fine for determining periods of activity when one's
after a minute mark, but anything beyond that starts getting hairy. Sure
wish I had even second precision. The client-side use of shdoc401.dll
namespace(34) seems to preclude this, sadly.
--
Scott
>> you must be aware that web requests, like most other events in computing, are not ever logged as durations, but as instants.<<
Do not confuse the recording of the data with the data model. Think
about a sign-in and sign-out sheet or timeclock. Each line is "half a
fact"; the whole fact is the duration spent on the job. In this case,
the user logs onto a site, stays there for x-minutes. He is not there
for a Chronon (that is the term for a point in time in temporal
databases). So his table MIGHT look like this:
CREATE TABLE Browsing
(user_id VARCHAR(30) NOT NULL,
website VARCHAR(255) NOT NULL,
login_time TIMESTAMP DEFAULT CURRENT_TIMESTA MP NOT NULL,
logout_time TIMESTAMP, -- null means still there
CHECK (login_time <= logout_time), -- less than one minute problem
PRIMARY KEY (user_id, website, login_time));
The real problem in this situaiton is having to round to the minute.
We can force a convention on the stopping time to keep it away from the
starting point by a bit less than one munute -- ('yyyy-mm-ddThh:mm:00'
to 'yyyy-mm-ddThh:mm:59.997 ').
Ever read the paradoxes of Zeno? He went thru what happens when you
believe in Chronons. He lived in a time when Greek math was "integer
only" and without a continuum.
--CELKO-- opined thusly on Aug 31: The real problem in this situaiton is having to round to the minute. We can force a convention on the stopping time to keep it away from the starting point by a bit less than one munute -- ('yyyy-mm-ddThh:mm:00' to 'yyyy-mm-ddThh:mm:59.997 ').
As in my further woes (see recent reply in thread), at issue is the
adequacy of the data in describing the phenomena In this case, users cannot
simultaneously click a mouse on more than one thing -- though it's not
impossible to identify ways that http GETs can occur concurrently on one
machine under one user's context. At any rate, it should be obvious that
minute precision for web browsing event recording is insanely coarse. But I
doubt anyone planned for local Internet History to be used for purposes I'm
stretching it to. A proxy server is a choke-point that allows for more
precise dating, because it's an ideal platform for doing so. A Microsoft
DLL is not necessarily designed to meet needs its coders never had in mind,
alas.
Dang, if they'd only gone to second precision. I'd be content with that, I
swear! ;-)
--
Scott
You are fabricating an example to suit your definitions while makeing no
effort to distingush between instants and intervals. For someone who
recommends Snodgrass' work, you should really read chapters 3 and 11 of his
book.
--
Anith This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: tom |
last post by:
I am new to SQL administration.
>From a list of IDs that are the primary key in one table (i.e. Customer
Table), I want to make changes in tables that use those IDs as a
foreign key.
Basically I want to say:
If fk_ID is in list then
do these statements to that record
|
by: Dale Ring |
last post by:
Sorry about the dup post, somehow my original post was put on an
existing thread instead of a new one.
Access 2000
I am working with a service call database and would like to create a
query that looks for repeat trips within a user defined time period in
minutes.
The affected fields are CustID, CallDate, TimeComplete, TimeReceived
|
by: Dale Ring |
last post by:
Sorry about the dup post, somehow my original post was put on an
existing thread instead of a new one.
Access 2000
I am working with a service call database and would like to create a
query that looks for repeat trips within a user defined time period in
minutes.
The affected fields are CustID, CallDate, TimeComplete, TimeReceived
|
by: Trevor Best |
last post by:
I have an import routine that takes a generic file (Excel, CSV, Fixed
length, PDMS BOM, XML, etc) and maps fields to a temp import table on
the server, in the field mapping there may be functions specified so the
user may put in "Mid([DocNumber,12,3)" as a value to go into FieldX.
I've tried 3 methods of getting the data from a linked table (CSV file)
to the SQL Server, each having some drawbacks.
Method 1: DAO, pokes each record in...
|
by: Lyle Fairfield |
last post by:
This takes about 2 seconds on my rather obsolete machine:
Option Explicit
' Test is a simple JET Table with four fields
' ID -> autonumber primary key
' Field1 -> Integer (maps to VBA long)
' Field2 -> Text (50)
' Field3 -> DateTime
| |
by: lcrwebmaster |
last post by:
PLEASE HELP!!!!
Needing help with developing a stored proc for the following:
Production crews work at the following times:
CREW A = 7:30AM to 3:30PM
CREW B = 3:30PM to 11:30PM
CREW C = 11:30PM to 7:30AM
- There are Record_Begin_Date and Record_End_Date time/date fields in the database.
|
by: wvmbark |
last post by:
First time poster... I just found this forum and it appears there's plenty of people here that could make short work of problem that's been driving me absolutely bonkers for months.
Every day we incur numerous service problems “Events”. Each morning we have a global conference call where events which occurred within the previous 24 hours are discussed. Prior to the call, an analyst has to review these events and provide a report, ‘The Morning...
|
by: rn5a |
last post by:
A MS-Access DB has 3 tables - Teacher, Class & TeacherClass. The
Teacher table has 2 columns - TeacherID & TeacherName (TeacherID being
the primary key). The Class table too has 2 columns - ClassID &
ClassName (ClassID being the primary key)
The TeacherClass table has 3 columns - TCID (AutoNumber), TeacherID &
ClassID. One teacher can teach multiple classes & one class can be
taught by multiple teachers. The TeacherClass table basically...
|
by: markrawlingson |
last post by:
Hopefully someone can help me out with this, it's driving me nuts...
I have two tables - We'll call them table1 and table2. Table1 holds event information, and table2 holds user registration data pertaining to each event in table1. So for each record in Table1 there could be hundreds of records pertaining to that record in Table2 - I am trying to count those records (to reveal the number of people registered for the event held in table1)
I...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
| |
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |