我有一个基本的SQL接口,可以从MySQL数据库创建报表,该报表包含对我创建的表单的响应。该接口不允许子查询。
表单中有五个字段(字段1-字段5),人们可以选择“第一选择”,“第二选择”等形式的偏好。
我的理想输出将总结如下选择:
field1, first choice, 5
field1, second choice, 3
field1, third choice, 0
...
field5, fourth choice, 2
field5, fifth choice, 1
但是,任何可以总结多少人选择每个字段的选项的布局都可以。
是否有实现此目标的方法,或者我需要五个报告,每个字段一个(这很容易用五个SELECT field[n], count(*) FROM table WHERE 1 GROUP BY field[n]
样式的报告,用1-5代替n)
编辑:样机表定义。这不是完整的表格,并且由于我无权访问实际表格,因此可能不是100%正确。 (例如,我想字段1-5实际上是VARCHAR
或TEXT
字段,但我不知道。ENUM
最好地说明了选择。)
CREATE TABLE `Example` (
`EntryID` int(11) NOT NULL,
`field1` enum('First Choice','Second Choice','Third Choice','Fourth Choice','Fifth Choice','Not Interested') NOT NULL,
`field2` enum('First Choice','Second Choice','Third Choice','Fourth Choice','Fifth Choice','Not Interested') NOT NULL,
`field3` enum('First Choice','Second Choice','Third Choice','Fourth Choice','Fifth Choice','Not Interested') NOT NULL,
`field4` enum('First Choice','Second Choice','Third Choice','Fourth Choice','Fifth Choice','Not Interested') NOT NULL,
`field5` enum('First Choice','Second Choice','Third Choice','Fourth Choice','Fifth Choice','Not Interested') NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `Example`
ADD PRIMARY KEY (`EntryID`);
ALTER TABLE `Example`
MODIFY `EntryID` int(11) NOT NULL AUTO_INCREMENT;