mysql - 两个 SQL 表,但在一个表中显示数据
问题描述
以下两个表格应合并为 1 并仅显示 Market、Date_buy 计数和 Date_sell 计数:
SELECT Market, macdb.Date_buy
FROM Buy_orders_macd macdb
JOIN SECTOR sec ON sec.Ticker = macdb.Name_buy
WHERE macdb.Date_buy = '2020-02-18'
SELECT Market, macds.Date_sell
FROM Sell_orders_macd macds
JOIN SECTOR sec ON sec.Ticker = macds.Name_sell
WHERE macds.Date_sell = '2020-02-18'
此处的示例输出为:
Market Count of Date_buy Count of Date_sell
Market_1 3 4
Market_2 2 2
我该怎么办?我尝试了 UNION ALL,但不是这样。我拥有的其他一些数据是公司名称
解决方案
将这两个查询与 结合起来UNION
,并使用SUM()
来计算每个查询的行数,按市场分组。
SELECT Market, SUM(buy) AS `Count of Date_buy`, SUM(sell) AS `Count of Date_sell`
FROM (
SELECT Market, 1 AS buy, 0 AS sell
FROM Buy_orders_macd macdb
JOIN SECTOR sec ON sec.Ticker = macdb.Name_buy
WHERE macdb.Date_buy = '2020-02-18'
UNION ALL
SELECT Market, 0 AS buy, 1 AS sell
FROM Sell_orders_macd macds
JOIN SECTOR sec ON sec.Ticker = macds.Name_sell
WHERE macds.Date_sell = '2020-02-18'
) AS x
GROUP BY Market
推荐阅读
- sql - 如何选择没有看过病人的医生?
- java - Java 自定义注释中的整数字段允许为空
- excel - 如何在不更改 SUM 的情况下重新排序
- intellij-idea - IntelliJ Ultimate - groovy config - configscript 的路径是什么?
- php - mysql搜索查找范围内的数字并大于
- react-native - 在 React Native for iOS 上查询 Google Places API 的问题
- javascript - 如何在 React Native 中使用 Redux 跨多个屏幕存储多个值
- c# - 将模型作为函数参数传递
- java - GSON:是否可以为同一个对象使用多个自定义 JsonSerializer
- laravel - Laravel 验证器不工作 - 这可能是 Laravel 6 验证器中的错误吗