如何顯示沒有NULL的mysql查詢?我想向我的獵物展示“LAG(title)OVER(PARTITION BY emp_no)”不為空,我只需要titles.emp_no =“LAG(title)OVER(PARTITION BY emp_no)”
我的查詢:
從標題中選擇titles.emp_no,LAG(title)OVER(PARTITION BY emp_no);
在此處輸入影像描述
uj5u.com熱心網友回復:
子查詢您當前的查詢并根據滯后值進行過濾:
WITH cte AS (
SELECT emp_no, LAG(title) OVER (PARTITION BY emp_no ORDER BY <col>) lag_title
FROM titles
)
SELECT emp_no, lag_title
FROM cte
WHERE lag_title IS NOT NULL;
請注意,我在 中添加了一個ORDER BY子句LAG,沒有它就沒有多大意義。
uj5u.com熱心網友回復:
你可以簡單地使用:
select emp_no, max(title) as title
from titles
group by emp_no
如果沒有帶有 title:NOT NULL 的 emp_no 行,結果將包括一些 title:NULL。如果您還想消除那些(并且只顯示至少有一個 nn-Null 標題的那些:
select emp_no, max(title) as title
from titles
where title is not null
group by emp_no
使用 LAG 的任何具體原因?如果您想獲得以前的(以特定方式排序)標題(并且該標題不為空),那將是有意義的;但您沒有指定訂單。
uj5u.com熱心網友回復:
@Vladyslav Nazarov 如果你愿意,你也可以使用 max(title)over(partition by emo_no order by ---only if you want or need----) 在這種情況下,你可以提高性能并且不使用 group by
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/467565.html
