Poniższe dwie tabele powinny być łączone z 1 i pokazać tylko rynku, liczyć daty_buy i liczbę daty_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'

Przykładowe wyjście byłyby:

Market    Count of Date_buy    Count of Date_sell
Market_1       3                     4
Market_2       2                     2

Jak mogę o to pójść? Próbowałem związku, ale to nie było droga. Niektóre inne dane, które mam, to nazwa firmy

-2
doomdaam 16 kwiecień 2021, 22:00

1 odpowiedź

Najlepsza odpowiedź

Połącz dwa zapytania za pomocą UNION i użyj SUM(), aby policzyć wiersze z każdego, grupowanie przez rynek.

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
2
Barmar 16 kwiecień 2021, 19:07