mysql query urgent!!!

2001-06-12 Thread Kapil Sharma

i,
I have to write simple mysql script. I need folowing things:

Number of people logged in previous 0 to 24 hours
Number of people logged in previous 24.5 to 48 hours
Number of people logged in previous 48.5 to 72 hours
Number of people logged in previous 72.5 hours to 7 days
Number of people logged in previous 7.5 to 14 days
Number of people logged in previous 14.5 days onwards


My tables is as follows:
mysql select * from User limit 1;
+--+---+-+--+
| partner_name | user_name | last_login  | mailbox_size |
+--+---+-+--+
| foo.net  | edward| 2001-06-02 09:37:41 |   229099 |
+--+---+-+--+
1 row in set (0.62 sec)

I also want to save the output to comma delimited file.
Cheers
kapil


_
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




Re: mysql query urgent!!!

2001-06-12 Thread Bob Hall

i,
I have to write simple mysql script. I need folowing things:

Number of people logged in previous 0 to 24 hours
Number of people logged in previous 24.5 to 48 hours
Number of people logged in previous 48.5 to 72 hours
Number of people logged in previous 72.5 hours to 7 days
Number of people logged in previous 7.5 to 14 days
Number of people logged in previous 14.5 days onwards


My tables is as follows:
mysql select * from User limit 1;
+--+---+-+--+
| partner_name | user_name | last_login  | mailbox_size |
+--+---+-+--+
| foo.net  | edward| 2001-06-02 09:37:41 |   229099 |
+--+---+-+--+
1 row in set (0.62 sec)

I also want to save the output to comma delimited file.
Cheers
kapil

Sir, redefine the last_login column as a timestamp and try the following;

CREATE TEMPORARY TABLE time_groups
SELECT If(
  Unix_timestamp(CURRENT_TIMESTAMP)
  - Unix_timestamp(last_login) = 86400
  , '01 day'
  , If(
   Unix_timestamp(CURRENT_TIMESTAMP)
   - Unix_timestamp(last_login) = 172800
   , '02 days'
   , If(
Unix_timestamp(CURRENT_TIMESTAMP)
- Unix_timestamp(last_login) = 259200
, '03 days'
, If(
 Unix_timestamp(CURRENT_TIMESTAMP)
 - Unix_timestamp(last_login) = 604800
 , '07 days'
 , If(
  Unix_timestamp(CURRENT_TIMESTAMP)
  - Unix_timestamp(last_login) = 1209600
  , '14 days'
  , '14 days'
 )
 )
 )
)
 ) AS time_group
FROM User;

SELECT time_group, Count(*)
FROM time_groups
GROUP BY time_group;

It works on my machine. The time_group values are chosen so that they 
will display in the proper order.

Bob Hall

Know thyself? Absurd direction!
Bubbles bear no introspection. -Khushhal Khan Khatak
MySQL list magic words: sql query database

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php