previous questionにテーブルを作成し、その月の日付を入力することができますが、そのテーブルにわずかに異なる値を設定したいとします。毎月の各日に3つの異なる時間間隔。MySQLのクエリで3時間の時間間隔
その質問、Tom Macすることにより、このコードによると:
create table all_date
(id int unsigned not null primary key auto_increment,
a_date date not null,
last_modified timestamp not null default current_timestamp on update current_timestamp,
unique key `all_date_uidx1` (a_date));
そして、
DELIMITER //
CREATE PROCEDURE populate_all_dates(IN from_date DATE, IN days_into_future INT)
BEGIN
DECLARE v_date DATE;
DECLARE ix int;
SET ix := 0;
SET v_date := from_date;
WHILE v_date <= (from_date + interval days_into_future day) DO
insert into all_date (a_date) values (v_date)
on duplicate key update last_modified = now();
set ix := ix +1;
set v_date := from_date + interval ix day;
END WHILE;
END//
DELIMITER ;
そして、あなたは実行することができます:
call populate_all_dates('2011-10-01',30);
を10月のすべての日付を移入するには(または何月にでも、関数の値を変更する)
私は次のクエリselect day(a.a_date) as 'October',
IFNULL(t.a1,0) as 'Auth1',
IFNULL(t.a2,0) as 'Auth2',
IFNULL(t.a50,0) as 'Auth50'
from all_date a
LEFT OUTER JOIN
(
SELECT date(wp.post_date) as post_date,
sum(case when wp.post_author = '1' then 1 else 0 end) as a1,
sum(case when wp.post_author = '2' then 1 else 0 end) as a2,
sum(case when wp.post_author = '50' then 1 else 0 end) as a50,
count(*) as 'All Auths'
FROM wp_posts wp
WHERE wp.post_type = 'post'
AND wp.post_date between '2011-10-01' and '2011-10-31 23:59:59'
GROUP BY date(wp.post_date)
) t
ON a.a_date = t.post_date
where a.a_date between '2011-10-01' and '2011-10-31'
group by day(a.a_date);
を実行する可能性があり、私はこれに似た作者と日によって私のワードプレスのブログで投稿数、でテーブルを取得するだろうとして
:
+---------+---------+-------+------+---------+
| October | Auth1 | Auth2 | Auth3| Auth4 |
+---------+---------+-------+------+---------+
| 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 1 | 0 |
| 3 | 4 | 4 | 6 | 2 |
| 4 | 4 | 3 | 5 | 2 |
| 5 | 7 | 0 | 5 | 2 |
| 6 | 4 | 4 | 0 | 2 |
| 7 | 0 | 2 | 1 | 2 |
| 8 | 0 | 0 | 7 | 0 |
.....
etc
しかし、私が持っているものは、毎日3つの異なる行に分けられ、それぞれが以下の時間範囲に対応しています。
00:00-14:30 14:31-18:15 18:16 -23:59このように、表にはどのような時間範囲が表示されるかわからないので、良い方法は1日目、1時間目の範囲(1-1 )、など)。
+---------+---------+-------+------+---------+
| October | Auth1 | Auth2 | Auth3| Auth4 |
+---------+---------+-------+------+---------+
| 1-1 | 0 | 0 | 0 | 0 |
| 1-2 | 0 | 0 | 0 | 0 |
| 1-3 | 0 | 0 | 0 | 0 |
| 2-1 | 0 | 0 | 1 | 0 |
| 2-2 | 0 | 0 | 0 | 0 |
| 2-3 | 0 | 0 | 0 | 0 |
| 3-1 | 1 | 2 | 3 | 0 |
| 3-2 | 1 | 2 | 2 | 2 |
| 3-3 | 2 | 0 | 1 | 0 |
etc...
ご覧のとおり、3行の合計は、その日の以前の一意の行のそれぞれに相当します。
これは可能ですか?
私は疑問を理解して...あなただけの割合を成長させる受け入れるべきではありません...しかし、2の一つが、受け入れられなかった残りは、受け入れることの価値があります(http://stackoverflow.com/questions/4830261/i-want-an-auto-hard-refresh-not-a-simple-auto-refresh-on-my-webpages/6938551#6938551)... acceptあなたはこのソリューションを具体的に使用しているわけではありませんが、他の人が良い答えであることを知るための答えを探すのに役立ちます。 – Yahia
良い点!私もその答えを受け入れました、チップYahiaのおかげで); – javipas
:-)私の答えは – Yahia