作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个输入表
+--------+---------+---------+-------+-----------+
| TaskId | member1 | member2 | score | functions |
+--------+---------+---------+-------+-----------+
| 1 | Jack | Jack | 100 | marketing |
| 1 | Jack | Jack | 100 | marketing |
| 2 | Jack | Steve | 90 | interior |
| 2 | Jack | Steve | 90 | interior |
| 3 | Steve | Jack | 70 | program |
| 3 | Steve | Jack | 70 | program |
| 4 | Jack | Mia | 30 | develop |
| 4 | Jack | Mia | 30 | develop |
| 5 | Mia | Jack | 20 | interior |
| 5 | Mia | Jack | 20 | interior |
+--------+---------+---------+-------+-----------+
我计算了两件事
现在,我想统计 Jack 在 member1
或 member2< 中存在的不同函数数
/
例如:member1 中的 Jack 在 (interior,develop)
成员 2 中的 Jack 在(程序,内部)
我的最终结果的计数是 4,这是错误的,我怎样才能得到 Jack 的 distinct count 是 3,它们是 (interior,develop,program),其余名称也是如此。
最佳答案
您可以使用 UNION ALL
将两个集合组合在一起,并在一个地方应用您的逻辑,而不是将您的逻辑应用于单个集合。
SELECT member,
uniquehightasks,
uniquelowtasks,
[%High] = uniquehightasks * 100.0 / ( uniquehightasks + uniquelowtasks ),
[%Low] = uniquelowtasks * 100.0 / ( uniquehightasks + uniquelowtasks ),
functions
FROM (SELECT member,
Sum(uniquehightasks) AS 'UniqueHighTasks',
Sum(uniquelowtasks) AS 'UniqueLowTasks',
Sum(functions) AS 'functions'
FROM (SELECT member,
UniqueHighTasks = Count(DISTINCT CASE WHEN score >= 75 THEN [taskid] END),
UniqueLowTasks = Count(DISTINCT CASE WHEN score < 75 THEN [taskid] END),
functions=Count(DISTINCT functions)
FROM (SELECT [taskid], member1 AS Member, functions, score
FROM mytable
WHERE member1 != member2
UNION ALL
SELECT [taskid], member2 AS member,functions, score
FROM mytable
WHERE member1 != member2) t22
GROUP BY member)t3
GROUP BY t3.member) t4
输出
+--------+-----------------+----------------+-----------------+------------------+-----------+
| member | UniqueHighTasks | UniqueLowTasks | %High | %Low | functions |
+--------+-----------------+----------------+-----------------+------------------+-----------+
| Jack | 1 | 3 | 25.000000000000 | 75.000000000000 | 3 |
+--------+-----------------+----------------+-----------------+------------------+-----------+
| Mia | 0 | 2 | 0.000000000000 | 100.000000000000 | 2 |
+--------+-----------------+----------------+-----------------+------------------+-----------+
| Steve | 1 | 1 | 50.000000000000 | 50.000000000000 | 2 |
+--------+-----------------+----------------+-----------------+------------------+-----------+
关于SQL-如何选择两列中具有相同值的不同行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49965751/
在我的 android 应用程序中,我想在同一行中实现 2 个文本字段。如果文本太长可以转到下一行。所以我使用了更精简的水平布局并添加了 2 个文本字段。 [例如:TextView1、TextV
由于node使用了javascript,它可以充当webrtc peer吗? 然后我可以将它编码为 VP8 流并广播给所有其他对等方吗? 最佳答案 WebRTC 是一个浏览器 API 而不是 Java
我是一名优秀的程序员,十分优秀!