Mysql 创建比较SQL

Mysql 创建比较SQL,mysql,Mysql,我有一个定义如下的表: CREATE TABLE `link_clicks` ( `ID` INT(10) NOT NULL AUTO_INCREMENT, `Clicked` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `State` VARCHAR(2) NULL DEFAULT '', INDEX `LinkID` (`ID`) ) COLLATE='utf8_general_ci' ENGINE=MyISAM

我有一个定义如下的表:

CREATE TABLE `link_clicks` (
    `ID` INT(10) NOT NULL AUTO_INCREMENT,
    `Clicked` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `State` VARCHAR(2) NULL DEFAULT '',
    INDEX `LinkID` (`ID`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
State  Oct 27-Nov 2  Nov 3-Nov 9
AL         13           18
AR         6            14
AZ         18           32
我需要做的是创建一个脚本,在其中我可以输入4个日期,并在前2个日期之间的值旁边列出后2个日期之间的值

有点像这样:

CREATE TABLE `link_clicks` (
    `ID` INT(10) NOT NULL AUTO_INCREMENT,
    `Clicked` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `State` VARCHAR(2) NULL DEFAULT '',
    INDEX `LinkID` (`ID`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM
State  Oct 27-Nov 2  Nov 3-Nov 9
AL         13           18
AR         6            14
AZ         18           32
以下是10月27日以来的一些样本数据:

INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86503, 'AL', '2014-11-13 15:36:13');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86502, 'AL', '2014-11-13 15:33:24');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86496, 'AL', '2014-11-13 14:53:03');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86477, 'AZ', '2014-11-13 13:06:34');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86462, 'AZ', '2014-11-13 11:21:15');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86406, 'AZ', '2014-11-12 15:55:00');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86402, 'AZ', '2014-11-12 14:52:35');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86401, 'AZ', '2014-11-12 14:51:22');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86400, 'AZ', '2014-11-12 14:49:23');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86395, 'AZ', '2014-11-12 14:29:43');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86393, 'AL', '2014-11-12 14:21:42');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86367, 'AL', '2014-11-12 11:40:38');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86353, 'AR', '2014-11-12 10:13:01');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86351, 'AR', '2014-11-12 10:10:35');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86347, 'AR', '2014-11-12 09:49:37');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86346, 'AZ', '2014-11-12 09:46:42');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86314, 'AZ', '2014-11-12 07:37:42');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86278, 'AR', '2014-11-11 15:22:34');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86277, 'AR', '2014-11-11 15:20:41');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86242, 'AZ', '2014-11-11 12:24:32');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86228, 'AZ', '2014-11-11 11:10:45');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86224, 'AZ', '2014-11-11 10:35:30');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86201, 'AL', '2014-11-11 08:59:37');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86199, 'AL', '2014-11-11 08:55:42');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86187, 'AR', '2014-11-11 08:31:15');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86166, 'AR', '2014-11-10 16:58:24');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86087, 'AZ', '2014-11-10 11:32:50');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86084, 'AZ', '2014-11-10 11:14:47');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86048, 'AZ', '2014-11-10 09:45:02');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (86025, 'AR', '2014-11-10 08:36:36');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85984, 'AZ', '2014-11-07 18:48:46');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85979, 'AZ', '2014-11-07 16:25:53');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85977, 'AZ', '2014-11-07 16:21:25');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85920, 'AR', '2014-11-07 10:32:43');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85864, 'AZ', '2014-11-06 19:35:03');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85861, 'AZ', '2014-11-06 17:25:41');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85814, 'AZ', '2014-11-06 12:32:33');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85813, 'AZ', '2014-11-06 12:27:04');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85757, 'AR', '2014-11-06 09:13:04');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85754, 'AZ', '2014-11-06 08:53:52');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85733, 'AZ', '2014-11-05 17:42:32');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85710, 'AL', '2014-11-05 15:00:36');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85708, 'AL', '2014-11-05 14:59:25');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85703, 'AZ', '2014-11-05 14:47:45');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85661, 'AZ', '2014-11-05 11:39:20');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85660, 'AL', '2014-11-05 11:38:30');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85659, 'AL', '2014-11-05 11:34:21');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85657, 'AR', '2014-11-05 11:26:46');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85639, 'AZ', '2014-11-05 10:21:12');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85568, 'AL', '2014-11-04 14:12:47');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85526, 'AL', '2014-11-04 11:11:48');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85515, 'AL', '2014-11-04 10:38:18');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85479, 'AZ', '2014-11-04 08:56:22');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85415, 'AL', '2014-11-03 14:00:36');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85405, 'AR', '2014-11-03 13:29:22');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85402, 'AZ', '2014-11-03 13:24:57');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85382, 'AZ', '2014-11-03 12:17:41');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85374, 'AZ', '2014-11-03 12:00:26');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85314, 'AL', '2014-11-03 09:56:04');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85304, 'AL', '2014-11-03 09:42:24');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85300, 'AR', '2014-11-03 09:35:10');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85274, 'AZ', '2014-11-03 09:05:46');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85239, 'AR', '2014-11-02 15:53:02');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85227, 'AL', '2014-11-02 08:50:35');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85168, 'AL', '2014-10-31 13:17:53');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85164, 'AL', '2014-10-31 13:15:17');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85101, 'AL', '2014-10-30 21:03:16');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85097, 'AZ', '2014-10-30 16:30:03');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85060, 'AL', '2014-10-30 12:35:46');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85059, 'AL', '2014-10-30 12:35:18');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85057, 'AZ', '2014-10-30 12:30:08');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85056, 'AZ', '2014-10-30 12:27:28');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85043, 'AZ', '2014-10-30 10:55:13');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (85041, 'AZ', '2014-10-30 10:49:59');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84995, 'AL', '2014-10-29 16:42:02');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84992, 'AZ', '2014-10-29 16:22:02');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84987, 'AR', '2014-10-29 15:38:55');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84968, 'AR', '2014-10-29 13:44:04');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84955, 'AZ', '2014-10-29 12:11:24');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84937, 'AR', '2014-10-29 10:30:42');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84919, 'AR', '2014-10-29 09:02:50');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84892, 'AZ', '2014-10-28 18:17:37');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84891, 'AZ', '2014-10-28 17:48:08');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84890, 'AZ', '2014-10-28 17:39:03');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84868, 'AZ', '2014-10-28 15:16:55');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84865, 'AL', '2014-10-28 14:58:56');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84861, 'AL', '2014-10-28 14:48:20');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84843, 'AZ', '2014-10-28 12:43:52');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84835, 'AZ', '2014-10-28 11:28:26');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84817, 'AZ', '2014-10-28 10:25:02');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84815, 'AZ', '2014-10-28 10:19:21');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84808, 'AL', '2014-10-28 09:43:24');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84807, 'AL', '2014-10-28 09:37:45');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84779, 'AL', '2014-10-27 21:25:07');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84756, 'AL', '2014-10-27 15:03:41');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84739, 'AL', '2014-10-27 13:54:27');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84711, 'AR', '2014-10-27 11:12:50');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84692, 'AZ', '2014-10-27 09:53:43');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84683, 'AR', '2014-10-27 09:16:57');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84682, 'AZ', '2014-10-27 09:11:02');
INSERT INTO `link_clicks` (`ID`, `State`, `clicked`) VALUES (84679, 'AZ', '2014-10-27 09:06:16');

最简单的方法是发出两个查询,每个日期范围一个查询:

SELECT state, COUNT(id)
FROM link_clicks
WHERE Clicked BETWEEN firstDate AND secondDate
GROUP BY state
ORDER BY state

此查询应生成在
firstDate
secondDate
之间单击的所有状态的列表。如果需要查询始终返回所有状态(即使是在所需时间段内根本没有单击的状态),则需要从
状态
表(如果存在此类表)执行
左JOIN

那么问题是什么?查看pivot表更多信息,请@MarshallTigerus。一张桌子能做一个枢轴吗?@MB34我知道你没有理由不能。只要谷歌MySQL数据透视表,你就可以找到你需要的所有信息。马歇尔,你真的很有帮助。我来这里是想知道一些细节,我可以整天在谷歌上搜索,却找不到我想要的东西。谢谢。这个网站的目的是帮助,而不是告诉人们RTFM或谷歌吧!这个问题要求一个参数化的查询。实际上,它没有。您声明需要“创建一个脚本”,而不是一个查询。