Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2012, 23:58   #21
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Pamparam
Цитата:
но мне нужно учитывать наличие каждого itemid, не отбрасывая повторы.
зачем? если ты хочешь просто вывести groupid, у которого есть такие то itemid. groupid для них ведь один и тот же.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 06.06.2012, 00:02   #22
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2Pamparam

зачем? если ты хочешь просто вывести groupid, у которого есть такие то itemid. groupid для них ведь один и тот же.
Не просто есть, а только они
groupid itemid
1 2
1 2
1 3
1 3
2 2
2 3
2 3
2 3
1 и 2 groupid - разные, т.к. кол-во входящих в них повторяющихся чисел разное
Pamparam вне форума Ответить с цитированием
Старый 06.06.2012, 01:41   #23
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2Pamparam
еще раз, если вернуться к началу
id groupid itemid
1 1 4
2 1 1
3 1 3
4 1 4
5 2 2
6 2 1
7 2 3
8 3 1
9 3 4
10 3 2
11 1 1
12 1 3

что ты хочешь получить? 1,2,1 ?
хочешь - давай в скайп (vvviperrr00)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 06.06.2012, 14:47   #24
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Еще вариант - найти все, для которых
itemid=2 встречается 2 раза
itemid=3 встречается 3 раза
itemid=7 встречается 1 раз
Под каждое условие запрос переделывать, но лучше чем ничего
Код:
SELECT U.groupid
  FROM (
    SELECT groupid,
        SUM(CASE WHEN itemid=2 THEN 1 ELSE 0 END) AS Count2,
        SUM(CASE WHEN itemid=3 THEN 1 ELSE 0 END) AS Count3,
        SUM(CASE WHEN itemid=7 THEN 1 ELSE 0 END) AS Count7
      FROM Table1
      WHERE itemid IN (2,3,7)
      GROUP BY groupid) U
  WHERE U.Count2=2 AND U.Count3=3 AND U.Count7=1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.06.2012, 15:05   #25
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

прямое калькирование последнего примера Аватара
менее оптимально по выполнению, но более прозрачно для подстройки
( меняется только условие отбора, не затрагивая внутренний select)
Код:
SELECT U.groupid
  FROM (
    SELECT groupid, itemid, count(*) as itemcount
--        SUM(CASE WHEN itemid=2 THEN 1 ELSE 0 END) AS Count2,
--        SUM(CASE WHEN itemid=3 THEN 1 ELSE 0 END) AS Count3,
--        SUM(CASE WHEN itemid=7 THEN 1 ELSE 0 END) AS Count7
      FROM Table1
--      WHERE itemid IN (2,3,7)
      GROUP BY groupid, itemid) U
  WHERE u.itemcount=2 and u.itemid=2 --U.Count2=2 
    AND u.itemcount=3 and u.itemid=3 --U.Count3=3 
    AND u.itemcount=7 and u.itemid=1 --U.Count7=1

а исходная (или не совсем исходная) как я понял

вывести все (включая повторы) наборы id, groupid для которых есть itemid =2 и есть itemid =5

Код:
select t2.id, t2.groupid  --вывести все наборы id, groupid
from table1 as t2 
inner join table1 as t5 on t2.id=t5.id and t2.groupid=t5.groupid  ---и также 
           and t5.itemid =5 --есть itemid =5
where t2.iditem=2 -- есть itemid =2
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 06.06.2012 в 15:20.
evg_m вне форума Ответить с цитированием
Старый 07.06.2012, 01:47   #26
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

thanks! по времени сравню какой удобнее будет
Pamparam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сводная по отфильтрованным значениям getikalex Microsoft Office Excel 24 03.11.2011 10:42
Разбиение строки по значениям artemavd Общие вопросы Delphi 7 11.11.2010 09:51
Вопрос по диапазонам и значениям PashaNastya Microsoft Office Excel 3 25.03.2010 09:28
Переход от ссылок к значениям! mephist Microsoft Office Excel 5 10.07.2009 16:01
Нарисовать Ellipse по значениям из... Apollo_13 Общие вопросы Delphi 3 17.06.2007 02:53