MYSQL在两个不同条件下计数行,如果计数相等则返回值作为输出

问题描述 投票:0回答:1

我有一张桌子:

PRICE
ticker date      close
AAPL   3/20/2019 $100
AAPL   3/21/2019 $101.5
AAPL   3/22/2019 $106.5
GOOG   3/20/2019 $100
GOOG   3/21/2019 $130
GOOG   3/22/2019 $110
MSFT   3/20/2019 $184.5
MSFT   3/21/2019 $188.5
MSFT   3/22/2019 $210
IBM    3/20/2019 $72
IBM    3/21/2019 $70
IBM    3/22/2019 $10

我想知道在两种不同条件下比较行数的正确方法,如果计数相等则返回自动收报机。 (最终只有在所有游行中接近> 100时才想返回代码)。所以:

SELECT ticker, COUNT(*) FROM PRICE WHERE close>100 group by ticker;

收益:

| ticker | COUNT(*) |
+--------+----------+
| AAPL   |        2 |
| GOOG   |        2 |
| MSFT   |        3 |

SELECT ticker, COUNT(*) FROM PRICE group by ticker;

收益:

| ticker | COUNT(*) |
+--------+----------+
| AAPL   |        3 |
| GOOG   |        3 |
| MSFT   |        3 |

所以MSFT应该是唯一返回输出的自动收报机。

SQL的新手和任何建议将不胜感激!

mysql count equality
1个回答
0
投票

一种简单的方法通过股票代码聚合并断言所有收盘价大于100:

SELECT ticker    -- maybe include COUNT(*), if you want to see the counts
FROM price
GROUP BY ticker
HAVING COUNT(CASE WHEN close <= 100 THEN 1 END) = 0;
© www.soinside.com 2019 - 2024. All rights reserved.