我怎么知道某个时期的所有值是否都超过 10?
How do I know if all values for a certain period are over 10?
这是 mysql 中的示例 table。
----------------------
idx |company|data|date
0 |A | 12 |2000-01-21
1 |A | 11 |2000-01-22
2 |A | 15 |2000-01-23
3 |A | 15 |2000-01-24
4 |A | 13 |2000-01-25
5 |B | 13 |2000-01-21
6 |B | 9 |2000-01-22
7 |B | 11 |2000-01-23
8 |B | 13 |2000-01-24
9 |C | 13 |2000-01-22
10 |C | 13 |2000-01-23
11 |C | 13 |2000-01-24
12 |C | 13 |2000-01-25
13 |C | 13 |2000-01-26
----------------------
上面的table,在这种情况下,
A和C公司在期间的值都超过了10(数据列)。
但是B公司不是因为idx 6.
我想知道A、C公司是否符合条件。但是乙不是。
我如何使用 mysql 或 mariadb 知道某个时期的所有值是否都超过 10?
您可以使用 group by
和 having
。只看最小值:
select company, min(data)
from t
group by company
having min(data) >= 10;
忽略未指定的 'certain period',这是一个想法...
SELECT DISTINCT x.company
FROM my_table x
LEFT
JOIN my_table y
ON y.company = x.company
AND y.data < 11
WHERE y.idx IS NULL;
这是 mysql 中的示例 table。
----------------------
idx |company|data|date
0 |A | 12 |2000-01-21
1 |A | 11 |2000-01-22
2 |A | 15 |2000-01-23
3 |A | 15 |2000-01-24
4 |A | 13 |2000-01-25
5 |B | 13 |2000-01-21
6 |B | 9 |2000-01-22
7 |B | 11 |2000-01-23
8 |B | 13 |2000-01-24
9 |C | 13 |2000-01-22
10 |C | 13 |2000-01-23
11 |C | 13 |2000-01-24
12 |C | 13 |2000-01-25
13 |C | 13 |2000-01-26
----------------------
上面的table,在这种情况下, A和C公司在期间的值都超过了10(数据列)。 但是B公司不是因为idx 6.
我想知道A、C公司是否符合条件。但是乙不是。 我如何使用 mysql 或 mariadb 知道某个时期的所有值是否都超过 10?
您可以使用 group by
和 having
。只看最小值:
select company, min(data)
from t
group by company
having min(data) >= 10;
忽略未指定的 'certain period',这是一个想法...
SELECT DISTINCT x.company
FROM my_table x
LEFT
JOIN my_table y
ON y.company = x.company
AND y.data < 11
WHERE y.idx IS NULL;