У меня есть две таблицы:SQL: число() и группа по
BLOCKQUOTE s1: (разные пользователи используют другой браузер на какое-то время)
browser time
1 opera 1
2 opera 1
3 opera 3
4 d 4
5 d 5
6 opera 6
7 opera 7
8 d 8
9 opera 9
10 opera 10
11 d 11
12 d 12
13 d 13
14 d 14
15 opera 15
BLOCKQUOTE s2 : (время, когда используется операционная система браузера)
opera time
1 1 1
2 1 1
3 1 3
4 1 6
5 1 7
6 1 9
7 1 10
Я хочу узнать количество опер, используемых в разное время. (Если в момент времени 2, никто не использовать оперу, он должен иметь 0 там.)
Blockquote
Select s1.time, count(s2.opera)
From s1 left join s2 on s1.time=s2.time
Group by s1.time
Тогда у меня есть это:
> Blockquote
> dddd
time count (s2.opera)
1 1 4
2 3 1
3 4 0
4 5 0
5 6 1
6 7 1
7 8 0
8 9 1
9 10 1
10 11 0
11 12 0
12 13 0
13 14 0
14 15 1
Который не является правильно, потому что в момент 1, опера должна иметь только 2 счета вместо 4. Я не знаю, где пошло не так.
Вы должны объяснить проблему более ясным образом. Однако, угадывая, в чем вы нуждаетесь, вам нужно посмотреть ЛЕВЫЙ ВХОД или ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.чтобы получить 0, когда счет не найден (посмотрите на функции, такие как COALESCE) – Hector
вы можете проверить нужный ответ ниже с полным демо-кодом код, который я написал, находится в oracle sql ... –