SQL для нахождения значения, имеющего строки, близкие к половине всех уникальных вхождений другого значения? - PullRequest
0 голосов
/ 02 июня 2011

Строки таблицы, которые я использую:

`factid` int(11) NOT NULL,
`segid` int(11) NOT NULL,
PRIMARY KEY (`factid`,`segid`)

Вот шаги, которые я пытаюсь выполнить:

  • Мне нужно общее количество уникальныхsegid значений в таблице.
  • Мне нужно одно значение factid.
  • Это значение factid должно содержать строки со многими уникальными значениями segid.
  • «Многие», являющиеся ближайшими к половине вышеупомянутыми общими уникальными segid значениями.

Я надеюсь, это объясняет то, что я пытаюсь выполнить.Помощь оценена.

1 Ответ

1 голос
/ 02 июня 2011
SELECT TOP 1
    facts.factid
  , facts.segids
  , segs.total_segids
FROM (
    SELECT factid
      , count(distinct segid) as segids
    FROM my_table
    GROUP BY factid
  ) facts,
  (
    SELECT count(distinct segid) as total_segids
    FROM my_table
  ) segs
ORDER BY abs(facts.segids - (segs.total_segids / 2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...