powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сделать в одном селекте группир. и подсчёт по условию
5 сообщений из 5, страница 1 из 1
сделать в одном селекте группир. и подсчёт по условию
    #35112724
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли в одном селекте сделать групировку и подсчёт по условию, например
p1 p2

1 1
1 0
1 1

Попробовал сделать Select p1,count(p2) as p2_1,count(empty(2)) as p2_0 from x group p1
ни фига не получилось, хотелось бы видеть

p1 p2_1 p2_0
1 3 1
...
Рейтинг: 0 / 0
сделать в одном селекте группир. и подсчёт по условию
    #35112807
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE CURSOR test (f1 int, f2 int)

INSERT INTO test VALUES ( 1 , 1 )
INSERT INTO test VALUES ( 1 , 0 )
INSERT INTO test VALUES ( 1 , 1 )

SELECT SUM(IIF(f1 =  1 ,  1 ,  0 )) as SumToF1, SUM(IIF(f2 =  1 ,  1 ,  0 )) as SumToF2 ;
FROM test 
...
Рейтинг: 0 / 0
сделать в одном селекте группир. и подсчёт по условию
    #35112814
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
create table pp (p1 i, p2 i)
insert into pp values ( 1 ,  1 )
insert into pp values ( 1 ,  0 )
insert into pp values ( 1 ,  1 )

select t.p1, count(t.p2),  ;
	(select count(p2) from pp where empty(p2)); 
	from pp t ;
	group by t.p1
...
Рейтинг: 0 / 0
сделать в одном селекте группир. и подсчёт по условию
    #35113041
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо..., классно второй селект ставить вместо поля...
...
Рейтинг: 0 / 0
сделать в одном селекте группир. и подсчёт по условию
    #35113188
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"прошелмимо" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5250070@sql.ru...
> Автор: прошелмимо
> create table pp (p1 i, p2 i)
> insert into pp values (1, 1)
> insert into pp values (1, 0)
> insert into pp values (1, 1)

К вашему добавляем:
insert into pp values (2, 0)

insert into pp values (2, 1)

> select t.p1, count(t.p2), ;
> (select count(p2) from pp where empty(p2));
> from pp t ;
> group by t.p1


Надо:


select t.p1, count(t.p2), ;

(select count(p2) from pp pp2 WHERE pp2.p1=t.p1 AND empty(p2));

from pp t ;

group by t.p1



Хотя, мне кажется, что на больших таблицах с sum(iif()) должно работать
быстрее, т.к. запрос довольно таки простой.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сделать в одном селекте группир. и подсчёт по условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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