Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE IF NOT EXISTS `tb_point` (
- `id` INT(11) NOT NULL,
- `user_id` INT(11) NOT NULL,
- `created_at` DATE NOT NULL,
- `points` INT(11) NOT NULL
- ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;
- --
- -- Dumping data for table `tb_point`
- --
- INSERT INTO `tb_point` (`id`, `user_id`, `created_at`, `points`) VALUES
- (1, 1, '2020-01-15', 1),
- (2, 1, '2020-02-20', 3),
- (8, 1, '2020-03-14', 7),
- (9, 2, '2020-01-01', 3),
- (10, 2, '2020-02-15', 4),
- (11, 3, '2020-02-18', 2),
- (12, 3, '2020-03-01', 5);
- -- --------------------------------------------------------
- --
- -- Stand-in structure for view `v_user_join`
- --
- CREATE TABLE IF NOT EXISTS `v_user_join` (
- `user_id` INT(11)
- ,`tgl` DATE
- );
- -- --------------------------------------------------------
- --
- -- Structure for view `v_user_join`
- --
- DROP TABLE IF EXISTS `v_user_join`;
- CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_user_join` AS SELECT `tb_point`.`user_id` AS `user_id`,MIN(`tb_point`.`created_at`) AS `tgl` FROM `tb_point` GROUP BY `tb_point`.`user_id`;
- --
- -- Indexes for dumped tables
- --
- --
- -- Indexes for table `tb_point`
- --
- ALTER TABLE `tb_point`
- ADD PRIMARY KEY (`id`),
- ADD KEY `user_id` (`user_id`);
- --
- -- AUTO_INCREMENT for dumped tables
- --
- --
- -- AUTO_INCREMENT for table `tb_point`
- --
- ALTER TABLE `tb_point`
- MODIFY `id` INT(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=13;
- --------------------
- SELECT p.user_id,MAX(p.points) points,MAX(created_at) tgl_max
- FROM `v_user_join` v_user
- JOIN tb_point p ON v_user.user_id =p.user_id
- WHERE tgl < '2020-02-01' AND p.created_at < '2020-02-01'
- GROUP BY p.user_id
- -----
- SELECT p.user_id,MAX(p.points) points, date_format(created_at, "%Y-%m") tgl_show
- FROM `v_user_join` v_user
- JOIN tb_point p ON v_user.user_id =p.user_id
- WHERE tgl < '2020-02-01' AND p.created_at < '2020-02-01'
- GROUP BY p.user_id
- -------------------
- SELECT SUM( MAX(p.points) )points, date_format(created_at, "%Y-%m") tgl_show
- FROM `v_user_join` v_user
- JOIN tb_point p ON v_user.user_id =p.user_id
- WHERE tgl < '2020-02-01' AND p.created_at < '2020-02-01'
- GROUP BY p.user_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement