作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的 table :
Problem UserID Grade
Probleme1 ID1 33
Probleme1 ID2 100
Probleme1 ID4 57
Probleme1 ID6 57
Probleme1 ID78 24
Probleme1 ID5 24
Probleme2 ID1 37
Probleme2 ID12 88
Probleme2 ID6846 100
Probleme2 ID2 2
我想要实现的目标是创建一个包含以下内容的表:
所以我尝试这样做:
DROP TABLE IF EXISTS Problem_Grades_Point;
CREATE TABLE Problem_Grades_Point (
Platform VARCHAR(20),
AnalyticsDomain VARCHAR(255),
ShortTitle VARCHAR(255),
Problem VARCHAR(255),
Grade0 INT,
Grade10 INT,
Grade20 INT,
INDEX (Problem)
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_bin;
INSERT INTO Problem_Grades_Point
SELECT
Platform,
AnalyticsDomain,
ShortTitle,
Problem,
COUNT(Problem) AS Grade0,
0 as Grade10,
0 as Grade20
FROM First_Attempt_Problem_Grades
WHERE First_Grade = 0
GROUP BY Problem
UNION ALL
SELECT
Platform,
AnalyticsDomain,
ShortTitle,
Problem,
0 as Grade0,
COUNT(t.Problem) AS Grade10,
0 as Grade20
FROM First_Attempt_Problem_Grades t
WHERE First_Grade = 10
GROUP BY Problem
UNION ALL
SELECT
Platform,
AnalyticsDomain,
ShortTitle,
Problem,
0 as Grade0,
0 as Grade10,
COUNT(Problem) AS Grade20
FROM First_Attempt_Problem_Grades
WHERE First_Grade = 20
GROUP BY Problem
当然,它并不包含我想要的所有内容,当然,它也不起作用。它仅显示成绩 0 的结果。所有其他成绩均为空,如下所示:
我该如何建立这个 SOV 社区? :)
最佳答案
首先您需要一份成绩列表。因此,您创建一个成绩从 1 到 100 的数字表,并将其命名为 Grades
How do I get a list of numbers in MySQL?
现在你可以:
SELECT P.Problem,
G.Grade,
COUNT(Y.UserID)
FROM ( SELECT DISTINCT Problem
FROM YourTable) as P -- if you have a table `Problems` you can use it instead
CROSS JOIN Grades as G
LEFT JOIN YourTable Y
ON P.Problem = Y.Problem
AND G.Grade = Y.Grade
GROUP BY P.Problem, G.Grade
关于mysql - 按不同年级分组并知道他们是多少年级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776841/
我创建了一个小的下拉菜单,其中有我想在选择初级类时看到 1、2、3、4、5 年级的类(class)。我该怎么做我已经在此处实现了一些部分我已经附上 css 和我的代码 body{ font-f
我是一名优秀的程序员,十分优秀!