У меня есть таблица со следующими:Выберите X новые строки для каждого уникального значения столбца
- EVENTID -> первичный ключ, более высокие цифры означают более новый
- Itemid -> внешний ключ к пунктам таблица
- сообщение -> сообщение о событии
Там будет 100/1000s событий для каждого ItemID. Мне нужно, чтобы получить X самых новых событий из таблицы для каждого уникального значения itemid. В этом случае X равно 20, а «новейший» - самый высокий eventid.
Что я делал раньше, так это получение всего стола и сохранение только 20 самых новых для каждого элемента. Это очень медленно и неэффективно.
Edit: Я использую OpenNMS и таблицу событий (OpenNMS create.sql): (Itemid == NodeId)
create table events (
eventID integer not null,
eventUei varchar(256) not null,
nodeID integer,
eventTime timestamp with time zone not null,
eventHost varchar(256),
eventSource varchar(128) not null,
ipAddr varchar(16),
eventDpName varchar(12) not null,
eventSnmphost varchar(256),
serviceID integer,
eventSnmp varchar(256),
eventParms text,
eventCreateTime timestamp with time zone not null,
eventDescr varchar(4000),
eventLoggroup varchar(32),
eventLogmsg varchar(256),
eventSeverity integer not null,
eventPathOutage varchar(1024),
eventCorrelation varchar(1024),
eventSuppressedCount integer,
eventOperInstruct varchar(1024),
eventAutoAction varchar(256),
eventOperAction varchar(256),
eventOperActionMenuText varchar(64),
eventNotification varchar(128),
eventTticket varchar(128),
eventTticketState integer,
eventForward varchar(256),
eventMouseOverText varchar(64),
eventLog char(1) not null,
eventDisplay char(1) not null,
eventAckUser varchar(256),
eventAckTime timestamp with time zone,
alarmID integer,
constraint pk_eventID primary key (eventID)
);
Мой запрос был очень прост:
SELECT eventid, nodeid, eventseverity, eventtime, eventlogmsg
FROM events
WHERE nodeid IS NOT NULL;
Можете ли вы опубликовать свою структуру таблиц как «CREATE TABLE ...», примеры данных и ваш существующий запрос? –
@IgorRomanchenko отредактировал сообщение с этими деталями – Smitty