SQL - выбор строк, где 2 строки должны быть одинаковыми - PullRequest
0 голосов
/ 12 октября 2011

Я очень неопытен с SQL. У меня есть таблица, которая выглядит так:

Columns:   A   B   C   D   E
           foo bar 1   2   3
           foo bar 4   5   6
           foo bar 7   8   9
           xyz abc 3   2   1
           xyz abc 6   5   4
           xyz abc 9   8   7

Теперь я хочу сформировать строку примерно так:

"foo bar: 1   2   3   4   5   6   7   8   9"
"xyz abc: 3   2   1   6   5   4   9   8   7"

Если это имеет значение, у меня также есть список столбцов A и B, которые я могу наивно использовать, набрав:

Rs1 = SELECT * FROM PARENT_TABLE:
    for a, b in RS1
        String = a + b
        Rs2 = SELECT C, D, E FROM CHILD_TABLE WHERE A='a' AND B='b'
            for every row in Rs:
                String += C D E
        print String

Есть ли в любом случае сделать это БЕЗ итерации по родительской таблице, а затем в каждой строке сформировать оператор и, таким образом, итерировать и по этому. Я упускаю очевидное решение?

Ответы [ 3 ]

1 голос
/ 12 октября 2011

Я пишу это без фактического знания схемы, поэтому она может не работать так:

SELECT A || ' ' || B || ': ' || WM_CONCAT(D || ' ' || E || ' ' || F || ' ')
  FROM PARENT_TABLE PT 
  INNER JOIN CHILD_TABLE CT ON CT.A=PT.A AND CT.B=PT.B
  GROUP BY (PT.A,PT.B)

Если вам нужно убедиться, что у вас есть хотя бы 2 строки, добавьте:

  HAVING COUNT(PT.A,PT.B)>=2
1 голос
/ 12 октября 2011

Вы хотите посмотреть агрегатные функции:

0 голосов
/ 06 апреля 2013

, если ваша таблица содержит 20 строк, из них 2 одинаковые

тогда вы можете получить данные

просто написав

select * from tablename where column_name='common value of that column';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...