Объедините эти запросы MySQL - PullRequest
1 голос
/ 22 декабря 2010

Мне нужно объединить эти запросы, чтобы я вернулся к списку месяцев, с новым итогом и возвращаемым итогом (чтобы отслеживать новых и возвращающихся пользователей). В настоящее время у меня есть эти два вопроса ниже. Первый считает устройства, которые являются новыми (обнаружение частоты), второй считается возвращением. Я хочу вывести результаты, чтобы это была таблица со строками для каждого месяца, затем два столбца с новыми и возвращаемыми данными.

SELECT COUNT( DISTINCT (mac) ) AS new,
EXTRACT( MONTH FROM date_time ) AS month
FROM detected_devices
WHERE client_id = 11
AND venue_id = 1
AND detection_frequency = 1
GROUP BY month

UNION ALL

SELECT COUNT( DISTINCT (mac) ) AS returning,
EXTRACT( MONTH FROM date_time ) AS month
FROM detected_devices
WHERE client_id = 11
AND venue_id = 1
AND detection_frequency > 1
GROUP BY month

Я осмотрелся, но не нашел никакой информации о том, как это можно сделать с помощью псевдонимов.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Это дает вам только одну строку с двумя столбцами, но должно дать вам представление о том, как вы можете использовать псевдонимы

SELECT
A.new,
B.returning
FROM
(SELECT COUNT( DISTINCT (mac) ) AS new,
EXTRACT( MONTH FROM date_time ) AS month
FROM detected_devices
WHERE client_id = 11
AND venue_id = 1
AND detection_frequency = 1
GROUP BY month) A,
(SELECT COUNT( DISTINCT (mac) ) AS returning,
EXTRACT( MONTH FROM date_time ) AS month
FROM detected_devices
WHERE client_id = 11
AND venue_id = 1
AND detection_frequency > 1
GROUP BY month) B
0 голосов
/ 22 декабря 2010

Как насчет этого?

SELECT t1.month, t1.new, t2.returning FROM (query 1) as t1, (query 2) as t2 where t1.month = t2.month;

(или объединение, в зависимости от того, что вы предпочитаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...