Re: Guidance needed on an alternative take on common prefix SQL

Поиск
Список
Период
Сортировка
От Andy Colson
Тема Re: Guidance needed on an alternative take on common prefix SQL
Дата
Msg-id ab7e79db-b24b-0ef6-efa1-42e6440770c7@squeakycode.net
обсуждение исходный текст
Ответ на Guidance needed on an alternative take on common prefix SQL  (Laura Smith <n5d9xq3ti233xiyif2vp@protonmail.ch>)
Ответы Re: Guidance needed on an alternative take on common prefix SQL  (Laura Smith <n5d9xq3ti233xiyif2vp@protonmail.ch>)
Список pgsql-general
On 8/6/19 6:25 PM, Laura Smith wrote:
> Hi,
> 
> I've seen various Postgres examples here and elsewhere that deal with the old common-prefix problem (i.e. "given 1234
showme the longest match").
 
> 
> I'm in need of a bit of guidance on how best to implement an alternative take.  Frankly I don't quite know where to
startbut I'm guessing it will probably involve CTEs, which is an area I'm very weak on.
 
> 
> So, without further ado, here's the scenario:
> 
> Given an SQL filtering query output that includes the following column:
> 87973891
> 87973970
> 87973971
> 87973972
> 87973973
> 87973975
> 87973976
> 87973977
> 87973978
> 87973979
> 8797400
> 
> The final output should be further filtered down to:
> 87973891
> 8797397
> 8797400
> 
> i.e. if $last_digit is present 0–9 inclusive, recursively filter until the remaining string is all the same (i.e. in
thiscase, when $last_digit[0-9] is removed, 8797397 is the same).
 
> 
> So, coming back to the example above:
> 8797397[0-9] is present
> so the "nearest common" I would be looking for is 8797397 because once [0-9] is removed, the 7 is the same on the
preceedingdigit.
 
> 
> The other two rows ( 87973891 and 8797400) are left untouched because $last_digit is not present in [0-9].
> 
> Hope this question makes sense !
> 
> Laura
> 
> 


Hows this?

select distinct
   case cc
      when 1 then num
      else left(num,-1)
   end
from (
    select
       num,
       (select count(*) as cc from numbers n2 where left(n2.num, -1) = left(numbers.num, -1))
    from numbers
) as tmpx ;


-Andy



В списке pgsql-general по дате отправления:

Предыдущее
От: Laura Smith
Дата:
Сообщение: Guidance needed on an alternative take on common prefix SQL
Следующее
От: Laurenz Albe
Дата:
Сообщение: Re: Sorting composite types