如何用SQL选择字符串的最长值?

0

【以下的问题经过翻译处理】 我正在编写一个查询,选择不同的条形码。每个条形码都有一个特定的序列。但是在数据库中,条形码存在多次。每次添加序列时,条形码在不同的行中可见。例如:

Enter image description here

我不想使用日期过滤器,因为有时会在同一日期发生两个序列。现在我已经使用了三个选择过滤器,但我想知道是否有其他方法可用。

SELECT wc.dn_barcode , ( SELECT da_waarnemingsequence FROM collo_dwh.collo wc2 WHERE wc2.dn_barcode = wc.dn_barcode AND length(sequence) = ( SELECT max(length(sequence) FROM collo_dwh.collo wc3 WHERE wc3.dn_barcode = wc2.dn_barcode ) ) sequence

FROM (database wc)

WHERE wc.da_datum_sortering1 BETWEEN "date_add"('day', -7, current_date) AND current_date AND wc.da_landcode_gea = 'NL' AND wc.sequence LIKE '%A1%B1%' AND wc.sequenceNOT LIKE '%I%'

profile picture
전문가
질문됨 5달 전35회 조회
1개 답변
0

【以下的回答经过翻译处理】 以下是使用窗口函数的另一种替代方案:

SELECT barcode, sequence, d FROM (
     SELECT barcode, sequence, d, rank() OVER (PARTITION BY barcode
                             ORDER BY length(sequence) desc) AS r
     FROM "db1"."barcodes" 
) as windw
WHERE windw.r = 1
profile picture
전문가
답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인