MYSQL 计算两种不同条件下的行数,如果计数相等,则 return 值作为输出

MYSQL count rows under two different conditions and return value as output if counts are equal

我有一个 table:

PRICE
ticker date      close
AAPL   3/20/2019 0
AAPL   3/21/2019 1.5
AAPL   3/22/2019 6.5
GOOG   3/20/2019 0
GOOG   3/21/2019 0
GOOG   3/22/2019 0
MSFT   3/20/2019 4.5
MSFT   3/21/2019 8.5
MSFT   3/22/2019 0
IBM    3/20/2019 
IBM    3/21/2019 
IBM    3/22/2019 

而且我想知道比较两种不同条件下的行数的正确方法,return如果计数相等则使用自动收报机。 (最终想要 return 只有在整个 3 月的收盘价>100 时才行情)。所以:

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

returns:

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

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

returns:

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

所以 MSFT 应该是 return 输出的唯一代码。

SQL 的新手,如有任何建议,我们将不胜感激!

一种简单的方法按股票代码聚合并断言所有收盘价都大于 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;