PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Изберете N реда със смесени стойности

Демонстрация на SQL Fiddle

Както можете да видите, създавам group_id така че group_id =1 ще бъде по-малкият TimeStamp за всеки порт

Второто поле е time_id така че в ПОРЪЧАЙ ПО след като избера всички 1 донесе всички 2,3,4 за всеки порт.

 SELECT * FROM ( SELECT *, row_number() over (partition by "port" order by "insertTimeStamp") group_id, row_number() over (order by "insertTimeStamp") time_id FROM Table1 T ) as T ORDER BY CASE WHEN group_id =1 THEN group_id ELSE time_id END LIMIT 4 

ИЗХОД

<предварителен код>| вмъкване на TimeStamp | пристанище | данни | group_id | time_id ||-----------------|------|------|----------|---- -----|| 1 | 20 | ааа | 1 | 1 || 2 | 21 | аза | 1 | 3 || 15 | 22 | 2aa | 1 | 8 || 2 | 20 | аба | 2 | 2 |

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Коя версия на PostgreSQL използвам?

  2. [Видео] Ansible и PostgreSQL

  3. Защо е необходим putenv() на вече дефинирана променлива на средата?

  4. Как да зададете схема по подразбиране в Yii2

  5. Забравена парола на администратор в Postgres (инсталация на Windows), не може да се нулира