これはMySqlの問題です。
人々がゾーンで過ごす時間を分析しています。
生データは次のとおりです。
visit_id person_id zone_id  timeIn    timeOut
1           1         1     10:58:10  11:03:07
2           1         1     11:03:59  11:04:10
3           2         1     10:52:10  10:53:59
4           2         1     10:57:03  10:57:22
5           2         1     10:57:55  10:58:27
6           2         2     11:04:33  11:05:17
(最後にMySQLデータ定義を追加しました)
出力は次のような棒グラフです。画像を挿入できないことがわかりました。これは、そのゾーン内の人数を分単位で示す棒グラフです。重要なことは、その分間ゾーンに誰もいない場合、ゼロエントリが表示されることです。その要件が存在しない場合、問題はより単純になります。
棒グラフ モジュールへの入力は、次のようにする必要があります (必要なゼロ要素に注意してください)。
zone_id  hourMinute count
1        10:52:00   1
1        10:53:00   1
1        10:54:00   0
1        10:55:00   0
1        10:56:00   0
1        10:57:00   1
1        10:58:00   2
1        10:59:00   1
1        11:00:00   1
1        11:01:00   1
1        11:02:00   1
1        11:03:00   1
1        11:04:00   1
2        10:52:00   0
2        10:53:00   0
2        10:54:00   0
2        10:55:00   0
2        10:56:00   0
2        10:57:00   0
2        10:58:00   0
2        10:59:00   0
2        11:00:00   0
2        11:01:00   0
2        11:02:00   0
2        11:03:00   0
2        11:04:00   1
2        11:05:00   1
また、上記の生データは 2 つの棒グラフ (ゾーン 1 とゾーン 2) のものです。ゾーン 1 のチャートのみを示しました。
データベースとバックエンド スクリプトの間でデータをやり取りすることにより、いくつかの段階でデータを作成できますが、面倒で、サポートが難しく、非効率的です。
mysql ですべてを実行できるはずだと思いますが、自分でそこに到達するのに十分な能力はありません。
入力から必要な出力に到達するために必要なmysqlを誰でも表示できますか?
ありがとう!
付録:
問題を理解するのに役立つ場合、データベースとバックエンドで作成する中間構造は次のとおりです。
工程1:ブレイクアウト
visit_id    person_id zone_id hourMinute
1           1         1       10:58:00
1           1         1       10:59:00
1           1         1       11:00:00
1           1         1       11:01:00
1           1         1       11:02:00
1           1         1       11:03:00
2           1         1       11:03:00
2           1         1       11:04:00
3           2         1       10:52:00
3           2         1       10:53:00
4           2         1       10:57:00
5           2         1       10:57:00
5           2         1       10:58:00
6           2         2       11:04:00
6           2         2       11:05:00
工程02:時分でソート
visit_id    person_id zone_id hourMinute
3           2         1       10:52:00
3           2         1       10:53:00
4           2         1       10:57:00
5           2         1       10:57:00
1           1         1       10:58:00
5           2         1       10:58:00
1           1         1       10:59:00
1           1         1       11:00:00
1           1         1       11:01:00
1           1         1       11:02:00
1           1         1       11:03:00
2           1         1       11:03:00
2           1         1       11:04:00
6           2         2       11:04:00
6           2         2       11:05:00
工程03:数える
zone_id     hourMinute  count   
1           10:52:00    1   
1           10:53:00    1   
1           10:57:00    1   
1           10:58:00    2   
1           10:59:00    1   
1           11:00:00    1   
1           11:01:00    1   
1           11:02:00    1   
1           11:03:00    1   person_id 1 visited twice in same minute
1           11:04:00    1   
2           11:04:00    1   
2           11:05:00    1   
入力用データ定義
CREATE DATABASE  IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
-- MySQL dump 10.13  Distrib 5.6.11, for Win32 (x86)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version   5.6.14
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `tb_stackoverflowquestion01`
--
DROP TABLE IF EXISTS `tb_stackoverflowquestion01`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tb_stackoverflowquestion01` (
  `visit_id` int(11) NOT NULL AUTO_INCREMENT,
  `person_id` int(11) DEFAULT NULL,
  `zone_id` int(11) DEFAULT NULL,
  `timeIn` datetime DEFAULT NULL,
  `timeOut` datetime DEFAULT NULL,
  PRIMARY KEY (`visit_id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='Question asked here:\nhttp://stackoverflow.com/questions/19723032/processing-source-data-to-produce-chartable-summary-with-mysql';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `tb_stackoverflowquestion01`
--
LOCK TABLES `tb_stackoverflowquestion01` WRITE;
/*!40000 ALTER TABLE `tb_stackoverflowquestion01` DISABLE KEYS */;
INSERT INTO `tb_stackoverflowquestion01` VALUES (16,1,1,'2013-01-01 10:58:10','2013-01-01 11:03:07'),(17,1,1,'2013-01-01 11:03:59','2013-01-01 11:04:10'),(18,2,1,'2013-01-01 10:52:10','2013-01-01 10:53:59'),(19,2,1,'2013-01-01 10:57:03','2013-01-01 10:57:22'),(20,2,1,'2013-01-01 10:57:55','2013-01-01 10:58:27'),(21,2,2,'2013-01-01 11:04:33','2013-01-01 11:05:17');
/*!40000 ALTER TABLE `tb_stackoverflowquestion01` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Dumping routines for database 'test'
--
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2013-11-01  8:36:33
この時点から、次のステップは、ページの上部に表示される最終出力です。