社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何在没有NULL的情况下显示mysql查询?

Vladyslav Nazarov • 3 年前 • 1416 次点击  

如何在没有NULL的情况下显示mysql查询? 我想显示我的方格,其中“LAG(title)OVER(PARTITION BY emp_no)”不是空的,我只需要titles。emp_no=“滞后(标题)超过(按emp_no划分)”

我的问题是:

选择标题。emp_编号,滞后(标题)超过(按emp_编号划分) 来自头衔;

enter image description here

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133250
 
1416 次点击  
文章 [ 2 ]  |  最新文章 3 年前
tinazmu
Reply   •   1 楼
tinazmu    3 年前

你可以简单地使用:

select emp_no, max(title) as title
from titles
group by emp_no

如果没有标题为NOT NULL的emp_no行,则结果将包括一些标题为NULL的行。如果您想删除这些内容(并且仅显示至少有一个nn空标题的内容):

select emp_no, max(title) as title
from titles
where title is not null
group by emp_no

使用LAG有什么具体原因吗?如果你想得到一个以前的(以特定方式排序的)标题(并且该标题不是空的),这是有意义的;但你没有指定订单。

Tim Biegeleisen
Reply   •   2 楼
Tim Biegeleisen    3 年前

子查询当前查询并基于滞后值进行筛选:

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 ,没有它就没有什么意义。