powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
6 сообщений из 6, страница 1 из 1
Помогите с запросом
    #33355936
Фотография ujcnm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже не знаю, как вопрос нормально задать...

Есть следующие данные:
item_id = 10
item_id = 10
item_id = 20
item_id = 20
item_id = 20
item_id = 30

Нужно для известных item_id узнать, сколько раз они пересекаются

То есть,
для item_id=10 и item_id=20 результат = 2
для item_id=20 и item_id=30 результат = 1
для item_id=10,item_id=20 и item_id=30 результат = 1
...
Рейтинг: 0 / 0
Помогите с запросом
    #33356044
Ivan Evtuhovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select min(c) 
from
  (select count(*) as c, item_id
   from
     t1
   where
     item_id in (item_1, item_2)
   group by item_id ) as a

--
С наилучшими пожеланиями,
Иван Евтухович
...
Рейтинг: 0 / 0
Помогите с запросом
    #33356049
Фотография ujcnm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправлюсь немного
Таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
id   item_id
 1      10 
 1      20 
 1      20 
 2      20 
 2      30 
 3      10 
 3      20 
 3      30 

Нужно получить все id, для которых есть известные item_id
То есть,
если есть item_id=10 и item_id=20 - результат: id = 1, 3
если есть item_id=10, item_id=20 и item_id=30 - результат: id = 3

зы - или у меня опять что-то с головой не так?
...
Рейтинг: 0 / 0
Помогите с запросом
    #33356055
Фотография ujcnm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Evtuhovich
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select min(c) 
from
  (select count(*) as c, item_id
   from
     t1
   where
     item_id in (item_1, item_2)
   group by item_id ) as a

--
С наилучшими пожеланиями,
Иван Евтухович

Спасибо, это скорее всего то что нужно
...
Рейтинг: 0 / 0
Помогите с запросом
    #33356076
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ujcnmПоправлюсь немного
Таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
id   item_id
 1      10 
 1      20 
 1      20 
 2      20 
 2      30 
 3      10 
 3      20 
 3      30 

Нужно получить все id, для которых есть известные item_id
То есть,
если есть item_id=10 и item_id=20 - результат: id = 1, 3
если есть item_id=10, item_id=20 и item_id=30 - результат: id = 3

зы - или у меня опять что-то с головой не так?
типа того
Код: plaintext
1.
2.
select distinct t1.tid from test t1 inner join test t2 using (tid) --inner join test t3 using(tid)
where t1.item_id = 10  and t2.item_id = 20  --and t3.item_id=30
...
Рейтинг: 0 / 0
Помогите с запросом
    #33356175
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ujcnm
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
id   item_id
 1      10 
 1      20 
 1      20 
 2      20 
 2      30 
 3      10 
 3      20 
 3      30 

Нужно получить все id, для которых есть известные item_id
То есть,
если есть item_id=10 и item_id=20 - результат: id = 1, 3
если есть item_id=10, item_id=20 и item_id=30 - результат: id = 3select id, count(distinct item_id) from ... where item_id in ( 10, 20 ) having count(distinct item_id)=2
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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