- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从时间表中获取不同运动员的数量,其中时间小于其他时间。但棘手的部分是如果根本没有时间(为了比较,我需要返回 NULL)。
举个例子:
CREATE TABLE `teams` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO teams
VALUES (NULL, 'Texas'), (NULL,'Oklahoma');
mysql> select * from teams;
+----+----------+
| id | name |
+----+----------+
| 1 | Texas |
| 2 | Oklahoma |
+----+----------+
CREATE TABLE `times` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`team_id` int(11) NOT NULL,
`time` decimal(8,2) NOT NULL,
`athlete` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `team_id` (`team_id`)
);
INSERT INTO times VALUES
(NULL, 1, 19.10, 'Dave'),
(NULL, 1, 19.09, 'Dave'),
(NULL, 1, 19.07, 'Dave'),
(NULL, 1, 19.56, 'John'),
(NULL, 1, 19.60, 'John'),
(NULL, 1, 19.75, 'John');
mysql> select * from times;
+----+---------+-------+---------+
| id | team_id | time | athlete |
+----+---------+-------+---------+
| 1 | 1 | 19.10 | Dave |
| 2 | 1 | 19.09 | Dave |
| 3 | 1 | 19.07 | Dave |
| 4 | 1 | 19.56 | John |
| 5 | 1 | 19.60 | John |
| 6 | 1 | 19.75 | John |
+----+---------+-------+---------+
到目前为止,我们有两个团队。 Team 1
有两名运动员 6 次 和Team 2
没有运动员(分别是时间)。
如果我想知道How many Athletes from Texas are faster than 19.50
我能做到:
SELECT COUNT(DISTINCT athlete) FROM times WHERE time < 19.50 and team_id = 1;
+-------------------------+
| COUNT(DISTINCT athlete) |
+-------------------------+
| 1 |
+-------------------------+
这是正确的。
如果我想检查 How many Athletes from Texas are faster than 19.00
SELECT COUNT(DISTINCT athlete) FROM times WHERE time < 19.00 and team_id = 1;
+-------------------------+
| COUNT(DISTINCT athlete) |
+-------------------------+
| 0 |
+-------------------------+
也是正确的(因为我们有来自 Texas
的两名运动员)。
但如果我想检查:How many Athletes from Oklahoma are faster than 19.00
SELECT COUNT(DISTINCT athlete) FROM times WHERE time < 19.00 and team_id = 2;
+-------------------------+
| COUNT(DISTINCT athlete) |
+-------------------------+
| 0 |
+-------------------------+
不正确因为我们没有时间来自Oklahoma
.所以在这里我需要得到 NULL
作为返回。
我设法找到了一个带有子查询的解决方案:
SELECT
IF(
EXISTS(
SELECT 1 FROM times WHERE team_id = 2
),
COUNT(DISTINCT athlete),
NULL
) as count
FROM `times`
WHERE
team_id = 2 AND time < 19.00;
+-------+
| count |
+-------+
| NULL |
+-------+
这是正确的,如果我针对 Texas
进行测试,我得到:
SELECT
IF(
EXISTS(
SELECT 1 FROM times WHERE team_id = 1
),
COUNT(DISTINCT athlete),
NULL
) as count
FROM `times`
WHERE
team_id = 1 AND time < 19.00;
+-------+
| count |
+-------+
| 0 |
+-------+
它返回正确的答案。
但问题是我使用了 sub-query
这必须模仿主查询的所有过滤器,除了time < 19.00
.在我的实际应用程序中有更多的过滤器,我正在寻找没有子查询的解决方案。
想到的一件事是使用 SUM(CASE)
SELECT SUM(CASE
WHEN time < 19.50
THEN 1
ELSE 0
END) as count
FROM `times`
WHERE team_id = 2;
+-------+
| count |
+-------+
| NULL |
+-------+
问题是这是计算时间而不是不同的运动员,因此对于Texas
我会得到错误的计数;
SELECT SUM(CASE
WHEN time < 19.50
THEN 1
ELSE 0
END) as count
FROM `times`
WHERE team_id = 1;
+-------+
| count |
+-------+
| 3 |
+-------+
我比 19.50
快 3 倍而不是 1 名运动员 比 19.50
快.
最佳答案
怎么样...
SELECT a.name
, MAX(b.athlete < 19.50) faster
FROM teams a
LEFT
JOIN times b
ON b.team_id = a.id
GROUP BY a.name;
关于MySQL 优化查询 COUNT-ing DISTINCT 值或 NULL IF NO ROWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36747053/
以下片段的效果之间有什么区别(如果有的话): cout << "Some text" << s1 << "some more text\n"; cout << "Some text" + s1 + "
在解释器模式下运行 python 时,什么是 more-ing 或 less-ing 多行输出的最佳替代方案? 假设,存在一个对象变量foo,它有很多属性。 dir(foo) 会转储到屏幕上。我们无法
在阅读“Lucene in Action 2nd edition”时,我看到了关于 Filter 的描述。可用于在 Lucene 中进行结果过滤的类。 Lucene 有很多过滤器重复 Query类。例
为了满足我对 C 知识的渴求,在连接到我的家庭网络的两个 linux 机器上,我正在编写一个基本的 telnet,它包含 send() 和 recv( ) 的字符串(只是为了获得套接字和线程的一些经验
给定以下三个简单函数: func twice_Array_of_Int(a: [Int]) -> [Int] { return a + a } func twice_Array_of_T(a:
如我的 previous question 中所述,我正在尝试在功能上制作一些有点像向导的东西。我已经确定了一个单独的框架,并添加了一个sizer。我为希望用户看到的每个屏幕构建面板,将它们添加到框架
据我了解,range-v3 库的 View 操作(目前需要 C++17,但要成为 C++20 中 STL 的正式部分)提供了可链接的类 STL 算法,这些算法是延迟计算的。作为实验,我创建了以下代码来
如何选择来自一位特定作者的所有项目?可能这样吗?或者,如果我也想要很多项目类型和项目包(项目有很多项目),我该如何编辑实体? 元素 /** * @ORM\Table() * @ORM\Entity
我想选择以正则表达式结尾的单词,但我想排除以 thing 结尾的单词。例如: everything running catching nothing 这几个词中,选running和catching,排
使用 Julia 1.5.3 和 Julia 1.6.0 两个版本似乎都不支持 & 用于 BitArrays。 我有两个 BitArray,例如 x = BitArray([1,0,1]) 和 y=B
我有一个读取二进制文件然后使用 struct.unpack() 解压文件内容的函数。我的功能工作得很好。如果/当我使用长的“格式”字符串解压缩整个文件时,它会更快。问题是有时字节对齐会发生变化,因此我
阅读维基百科上的“ARM 架构”,发现以下说法: Registers R0-R7 are the same across all CPU modes; they are never banked. R
您好,我需要 ssh 到一个 IP 地址并通过 shell 脚本运行我的 Java 代码我就是这样做的 ssh $LINE java -Djava.library.path=/N/u/sbpatil/
该程序应该读取字符串输入的值并返回结果。 但是,当我使用 System.out.println(Arrays.toString(stack.toArray())); 为了检查堆栈在最后甚至在程序期间的
在 Alpine 镜像中构建的 GO 可执行文件存在一个奇怪的行为,其中标准 LD_PRELOAD 功能无法正常工作。 看起来像 构造函数未被调用 由动态加载器! 我有一个示例 go 应用程序(get
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我在下面写这段代码,发现了这个奇怪的行为: #include #include #include using namespace std; int main() { map map1;
我对 JS 的 .sort() 函数理解得很好,对多维数组的理解也比较松散,但我有点卡住了。这是我得到的: var player1 = ["bob", 20]; var player2 = ["jon
在 python 中有更好的方法吗?: ((w.endswith('<') or w.endswith('')) 也许可以使用任何 最佳答案 字符串上的 endswith 方法可以将元组作为参数:
在 Javascript 中,有没有一种方法可以从数组中选择包含某些内容的单词。例如,["swimming", "basketball", "chess", "rowing"],我只想选择包含“-in
我是一名优秀的程序员,十分优秀!