▽1
●
うぃんど ●100ポイント ベストアンサー |
過去質問を見るとphpやwordpressなどを使ってたみたいだから、
MySQLで例を作ってみた。
CREATE TABLE `注文`(`注文日` date,`顧客名` text) ; INSERT INTO `注文` VALUES ('2013-04-23','はてな(株)') , ('2013-04-30','はてな(株)') , ('2013-5-12','はてな(株)') , ('2013-5-16','はてな(株)') ; SELECT a.* , COALESCE ( ( SELECT DATEDIFF( a.`注文日`, b.`注文日` ) FROM `注文` b WHERE b.`顧客名` = a.`顧客名` AND b.`注文日` < a.`注文日` ORDER BY b.`注文日` DESC LIMIT 1 ), 0 ) `日付間隔` FROM `注文` a ;
おまけでwindows関数を持っているRDBMS向け
CREATE TEMPORARY TABLE "注文"("注文日" date,"顧客名" text) ; INSERT INTO "注文" VALUES ('2013-04-23','はてな(株)') , ('2013-04-30','はてな(株)') , ('2013-5-12','はてな(株)') , ('2013-5-16','はてな(株)') ; SELECT a.* , COALESCE ( "注文日" - lag( "注文日" ) OVER ( PARTITION BY "顧客名" ORDER BY "注文日" ) , 0 ) "`日付間隔" FROM "注文" a ;