SQL для выбора фиксированного номера строки "семейства" - PullRequest
1 голос
/ 04 июля 2010

Заданная таблица

| id | user | 
| 1  | 1    |
| 1  | 2    |
| 1  | 3    |
| 1  | 4    |
| 2  | 5    |
| 2  | 6    |
| 2  | 7    |
| 2  | 8    |

Я хочу написать запрос, который будет возвращать 3 строки для id = 1 и 3 строки для id = 2 (порядок не имеет значения, но я предполагаю, что это может бытьпринудительно).

Таким образом, конечный результат должен быть примерно таким (Примечание, 3 строки для каждого идентификатора):

| id | user | 
| 1  | 1    |
| 1  | 2    |
| 1  | 3    |
| 2  | 5    |
| 2  | 7    |
| 2  | 8    |

Как мне написать этот SQL?Мои попытки с HAVING пока не принесли ничего полезного.

Спасибо, Максим.

Ответы [ 4 ]

0 голосов
/ 11 февраля 2013

Вы можете использовать:

select  top 3 * from [Table_Name] where id='1' or id='2'

0 голосов
/ 04 июля 2010

На SO есть несколько вопросов , которые охватывают эту область.

0 голосов
/ 04 июля 2010

Я подозреваю, что вам нужно

SELECT DISTINCT *
     FROM my_table;

, но это не будет ответом на вопрос, который вы задали, который, по-видимому, требует трех произвольно выбранных строк, если я правильно прочитал.

0 голосов
/ 04 июля 2010

Надеюсь, эта ссылка поможет:

http://blog.aharbick.com/2006/09/mysql-groupwise-limiting.html

больше ответов на эти вопросы:

предел mysql внутри группы?

MYSQL - Группировать по лимиту

...