21.02.2008, 09:39
общий
это ответ
Здравствуйте, Миленин Александр!
Вообще нет особой разницы, что именно использовать - UNION или GROUP BY.
Только например с GROUP BY можно вернуть количество уникальных IP по всем free, которые имеются в таблице. Но если бы мне нужно было толко по двум значениям - я бы наверно воспользовался объединением.
Вот еще несколько вариантов:
- возвращаем количество уникальных IP по всем имеющимся значениям FREE (с сортировкой по FREE)
SELECT ‘free‘, COUNT(DISTINCT(‘ip‘)) AS ‘num‘
FROM ‘lan‘
GROUP BY ‘free‘
ORDER BY ‘free‘
- то же самое, только уже с условием по нужным FREE
SELECT ‘free‘, COUNT(DISTINCT(‘ip‘)) AS ‘num‘
FROM ‘lan‘
WHERE ‘free‘ IN (0, 1) -- тут перечисляем через запятую все нужные нам FREE
GROUP BY ‘free‘
ORDER BY ‘free‘
- с использованием объединения все аналогично ответу ESI, правда можно без ALL, так как значения FREE мы уже ставим уникальные. Но это уже как кому приятнее.
Удачи.