У меня есть большой DDBB MySQL, и некоторые вычисления и агрегации должны быть выполнены. Одна из таблиц, скажем, называемая «thebigtable», получила различную информацию, а некоторые из вычислений извлекают различную информацию.Присоединение к нескольким запросам
Давайте использовать пример для "thebigtable":
+-----+-----------+------------+---------+
| id | secondid | date | value |
+-----+-----------+------------+---------+
| 001 | AAA1 | 2010-01-01 | 1000.00 |
| 001 | AAA1 | 2010-02-01 | 1000.00 |
| 001 | AAA1 | 2010-03-01 | 1000.00 |
| 001 | AAA1 | 2010-04-01 | 1000.00 |
| 001 | AAA1 | 2010-05-01 | 1000.00 |
| 001 | AAA1 | 2010-06-01 | 1000.00 |
| 001 | AAA1 | 2010-07-01 | 1000.00 |
| 001 | AAA1 | 2010-08-01 | 1000.00 |
| 001 | AAA1 | 2010-09-01 | 1000.00 |
| 001 | AAA1 | 2010-10-01 | 1000.00 |
| 001 | AAA1 | 2010-11-01 | 1000.00 |
| 001 | AAA1 | 2010-12-01 | 1000.00 |
+-----+-----------+------------+---------+
| 001 | AAA2 | 2010-01-01 | 1000.00 |
| 001 | AAA2 | 2010-02-01 | 1000.00 |
| 001 | AAA2 | 2010-03-01 | 1000.00 |
| 001 | AAA2 | 2010-04-01 | 1000.00 |
| 001 | AAA2 | 2010-05-01 | 1000.00 |
| 001 | AAA2 | 2010-06-01 | 1000.00 |
| 001 | AAA2 | 2010-07-01 | 1000.00 |
| 001 | AAA2 | 2010-08-01 | 1000.00 |
| 001 | AAA2 | 2010-09-01 | 1000.00 |
| 001 | AAA2 | 2010-10-01 | 1000.00 |
| 001 | AAA2 | 2010-11-01 | 1000.00 |
| 001 | AAA2 | 2010-12-01 | 1000.00 |
+-----+-----------+------------+---------+
| 002 | AAA1 | 2010-01-01 | 1000.00 |
| 002 | AAA1 | 2010-02-01 | 1000.00 |
| 002 | AAA1 | 2010-03-01 | 1000.00 |
| 002 | AAA1 | 2010-04-01 | 1000.00 |
| 002 | AAA1 | 2010-05-01 | 1000.00 |
| 002 | AAA1 | 2010-06-01 | 1000.00 |
| 002 | AAA1 | 2010-07-01 | 1000.00 |
| 002 | AAA1 | 2010-08-01 | 1000.00 |
| 002 | AAA1 | 2010-09-01 | 1000.00 |
| 002 | AAA1 | 2010-10-01 | 1000.00 |
| 002 | AAA1 | 2010-11-01 | 1000.00 |
| 002 | AAA1 | 2010-12-01 | 1000.00 |
+-----+-----------+------------+---------+
| 002 | AAA2 | 2010-01-01 | 1000.00 |
| 002 | AAA2 | 2010-02-01 | 1000.00 |
| 002 | AAA2 | 2010-03-01 | 1000.00 |
| 002 | AAA2 | 2010-04-01 | 1000.00 |
| 002 | AAA2 | 2010-05-01 | 1000.00 |
| 002 | AAA2 | 2010-06-01 | 1000.00 |
| 002 | AAA2 | 2010-07-01 | 1000.00 |
| 002 | AAA2 | 2010-08-01 | 1000.00 |
| 002 | AAA2 | 2010-09-01 | 1000.00 |
| 002 | AAA2 | 2010-10-01 | 1000.00 |
| 002 | AAA2 | 2010-11-01 | 1000.00 |
| 002 | AAA2 | 2010-12-01 | 1000.00 |
+-----+-----------+------------+---------+
Ok. Давайте теперь зададим QUERIES, которые я должен выполнить. Первый, вычисляет количество различных «secondid» для каждого «ид» с условием, что дата от месяца 08 до 10:
> SELECT id, COUNT(secondid) FROM thebigtable WHERE (date >= '2010-08-01') and (date <= '2010-10-01') GROUP BY id;
Результат должен быть:
+-----+-----------------+
| id | count(secondid) |
+-----+-----------------+
| 001 | 2 |
| 002 | 2 |
+-----+-----------------+
Второй QUERY, следует вычислить сумму значений для каждого идентификатора с условием, что дата является только месяц 08:
> SELECT id, SUM(value) FROM thebigtable WHERE (date LIKE '2010-08-01') GROUP BY secondid;
Результат должен быть:
+-----+-------------+
| id | sum(values) |
+-----+-------------+
| 001 | 2000.00 |
| 002 | 2000.00 |
+-----+-------------+
Я хочу, чтобы показать оба ВЫБРАТЬ под только один результат, а именно:
+-----+-----------------+-------------+
| id | count(secondid) | sum(values) |
+-----+-----------------+-------------+
| 001 | 2 | 2000.00 |
| 002 | 2 | 2000.00 |
+-----+-----------------+-------------+
Я судимое создать представления и присоединиться затем после, или создать союз как SELECT, но ни один из они работают.
Любая помощь?
Какие ошибки вы получаете? – Mihai
Если ваш второй запрос не является 'SELECT id, SUM (значение) FROM thebigtable WHERE (date LIKE '2010-08-01') GROUP BY id' i.e. * не * сгруппировано по' secondid'? – cars10m