Как я добавляю два, рассчитывают (*) результаты вместе на двух различных таблицах?

Согласно документации pandas, для итерации строк вы должны использовать:

df.iterrows()

, как указано в http://pandas.pydata.org/pandas-docs/stable/reference/api/ pandas.DataFrame.iterrows.html # pandas.DataFrame.iterrows

53
задан Ciro Santilli 新疆改造中心法轮功六四事件 20 May 2016 в 10:53
поделиться

3 ответа

Оберните их и используйте подзапросы:

SELECT
(SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900)+
(SELECT COUNT(*) from Games WHERE little_kid1 = 900 
                              OR little_kid2 = 900 
                              OR little_kid3 = 900)
AS SumCount

Вуаля!

116
ответ дан 7 November 2019 в 08:26
поделиться
SELECT COUNT(1) FROM
(
    SELECT 1 FROM Toys WHERE little_kid_id = 900
    UNION
    SELECT 1 FROM Games WHERE little_kid1 = 900
                        OR little_kid2 = 900
                        OR little_kid3 = 900
)
5
ответ дан 7 November 2019 в 08:26
поделиться

В зависимости от того, насколько часто этот запрос будет выполняться, и как часто при изменении данных вы можете периодически помещать данные в агрегированную таблицу, например:

CREATE TABLE aggregated (
    little_kid_id INT UNSIGNED,
    games_count INT UNSIGNED,
    toys_count INT UNSIGNED,
    PRIMARY KEY (little_kid_id)
);

С точки зрения производительности, это будет ** быстро и быстро избегает неприятных подзапросов.

5
ответ дан 7 November 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: