作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在SQLite中,如果我这样做:
CREATE TABLE fraction (
id Int,
tag Int,
num Int,
den Int,
PRIMARY KEY (id)
);
INSERT INTO fraction VALUES (1,1,3,4);
INSERT INTO fraction VALUES (2,1,5,6);
INSERT INTO fraction VALUES (3,2,3,8);
INSERT INTO fraction VALUES (4,2,5,7);
INSERT INTO fraction VALUES (5,1,10,13);
INSERT INTO fraction VALUES (6,2,5,7);
SELECT fraction.tag, max(1.0 * fraction.num / fraction.den)
FROM fraction
GROUP BY fraction.tag;
1|0.833333333333333
2|0.714285714285714
SELECT fraction.tag, max(1.0 * fraction.num / fraction.den),
fraction.num, fraction.den
FROM fraction
GROUP BY fraction.tag;
1|0.833333333333333|5|6
2|0.714285714285714|5|7
sum
而不是
min
,则某种类型的“搭便车”列将没有意义。
SELECT DISTINCT fraction_a.tag, fraction_a.high,
fraction_b.num, fraction_b.den
FROM
(SELECT fraction.tag, max(1.0 * fraction.num / fraction.den) AS high
FROM fraction
GROUP BY fraction.tag)
AS fraction_a JOIN
(SELECT fraction.tag, fraction.num, fraction.den
FROM fraction)
AS fraction_b
ON fraction_a.tag = fraction_b.tag
AND fraction_a.high = 1.0 * fraction_b.num / fraction_b.den;
1|0.833333333333333|5|6
2|0.714285714285714|5|7
最佳答案
使用GROUP BY时,数据库必须从(可能)多个输入行创建一个输出行。
GROUP BY子句中提到的列对于组中的所有行都具有相同的值,因此这是要使用的输出值。
具有某些聚合函数的列将使用该列来计算输出值。
但是,其他列是一个问题,因为该组中可能有不同的值。
SQL标准禁止这样做。
MySQL忘记检查此错误,并为输出提供了一些随机行的值。
SQLite允许这样做以与MySQL兼容。
从版本3.7.11开始,当您使用MIN或MAX时,SQLite保证其他列将来自具有最小值/最大值的记录。
关于sql - sql:在group by语句中包括未分组的列的合法性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24257066/
既然将两个指针相加是非法的,那么这段代码如何有效? struct key *low = &tab[0]; struct key *high = &tab[n]; struct key *mid; wh
我怎样才能完成以下建议的内容?: template class Base{...}; ... class Derived : public Base{...}; 最佳答案 是的,这是合法的。 Base
关闭。 这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 关闭 5 年前。 Improve
我是一名优秀的程序员,十分优秀!