powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто черепит в SQL, помогите чайнику
6 сообщений из 6, страница 1 из 1
Кто черепит в SQL, помогите чайнику
    #32470230
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация следующая:
Предположим сижу перед окном и считаю машины - Запоры, Мерсы. Жигули, Волги и т.д. (на самом деле все марки из справочника). Интересует состояние - мытая машина(.T.) или не мытая (.F.). Так вот как SELECT'ом выбрать все машины за сутки, сгруппировав их по маркам и ,главное, чтобы по каждой группе(марке машины) было число мытых машин, т.е.
Марки Количество за сутки Мытых
Волги ....................5......................3
Жигули..................7......................0
Запоры..................3......................3

Заранее Спасибо.
...
Рейтинг: 0 / 0
Кто черепит в SQL, помогите чайнику
    #32470413
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может так?

SELECT
Марка ,
COUNT(*) ,
(
SELECT
COUNT(*)
FROM
Машины м2
WHERE
м2.Мытые = FALSE AND
м2.Марка = м1.Марка
)
FROM
Машины м1
GROUP BY
Марка

Или с группой подзапрос не пройдет?
...
Рейтинг: 0 / 0
Кто черепит в SQL, помогите чайнику
    #32470443
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на forum.foxclub.ru ответили:
select Марки, count(Марки) as Кол_во,sum(iif(Мытая,1,0) as Мытые
from Табла_Мытых_И_Не_Мытых_Машин group by Марки
Проверил - работает!
...
Рейтинг: 0 / 0
Кто черепит в SQL, помогите чайнику
    #32470652
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку вопрос.
select Марки, count(Марки) as Кол_во,sum(iif(Мытая,1,0) as Мытые
from Табла_Мытых_И_Не_Мытых_Машин group by Марки
В чём разница между count(Марки) и count(*) - результат-то одинаковый!
...
Рейтинг: 0 / 0
Кто черепит в SQL, помогите чайнику
    #32470694
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае - никакой. Однако есть разница.

COUNT(*) возвращает количество в итоговой выборке вне зависимости от содержимого записей. Просто сколько записей есть.
COUNT(MyField) возвращает количество среди записей где есть значение поля MyField.

Т.е. при использовании COUNT(MyField) исключаются записи имеющие значение поля MyField=NULL

Пример:

Код: plaintext
1.
2.
3.
4.
CREATE CURSOR test (f1 I NULL)
INSERT INTO test VALUES (NULL)
INSERT INTO test VALUES ( 1 )

SELECT COUNT(*), COUNT(f1) FROM test


Почувствуйте разницу!

Обычно такой подсчет используется при объединении таблиц по LEFT, RIGHT или FULL JOIN для подсчета количества в подчиненной таблице.
...
Рейтинг: 0 / 0
Кто черепит в SQL, помогите чайнику
    #32470772
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто черепит в SQL, помогите чайнику
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]