У меня огромная таблица со 100 полями. Каждая строка имеет временную метку. Я хочу найти последнее значение, отличное от нуля, для всех столбцов. Я использую MySql 5.6 InnoDBmysql: найти самые новые ненулевые значения
например.
create table tester(
pub_id int,
pub_name varchar(20),
pub_city varchar(20),
country varchar(20),
no_of_branch varchar(20),
estd datetime
);
insert into tester (pub_id, pub_name, pub_city, country, estd)
values
(1, 'a', 'xyz', 'abcity' , 'a', '1970-01-01 00:00:01'),
(2, 'a', 'xyz', '' , 'a', '1971-01-01 00:00:01'),
(3, 'a', 'xyz', 'abcity1', 'b', '1972-01-01 00:00:01'),
(4, 'a', 'xyz', '' , 'a', '1973-01-01 00:00:01'),
(5, 'a', 'xyz', 'abcity2', '' , '1974-01-01 00:00:01'),
(6, 'b', 'lmn', 'abcity' , 'a', '1974-01-01 00:00:01'),
(7, 'b', 'xyz', '' , 'a', '1975-01-01 00:00:01'),
(8, 'b', 'sdf', 'abcity1', 'b', '1976-01-01 00:00:01'),
(9, 'b', '' , '' , 'a', '1977-01-01 00:00:01'),
(10, 'b', '' , 'abcity2', '' , '1978-01-01 00:00:01');
Я хочу, чтобы запросить, что дало бы мне:
'a', 'xyz', 'abcity2', 'a'
'b', 'sdf', 'abcity2', 'b'
Я не хочу использовать запрос, где я найти пустые значения для каждого столбца таблицы по отдельности, а затем принять присоединиться в качестве это было бы очень громоздкой задачей, учитывая, что моя фактическая таблица имеет 100 столбцов.
Я искал решение для прошлой пары наших и ничего не нашел. Любая помощь была бы весьма признательна.
Благодаря
В чем именно ваш вопрос? вы ищете «сложный» способ сделать это, чтобы избежать создания запроса с 100 условиями? –
есть. Я уверен, что есть лучший способ сделать этот поиск в SQL. –
Ваш алгоритм неясен. Как достичь этого ожидаемого результата? Кажется, вы группируете pub_name. – Sebas