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;
我有一个 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;