Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >按销售降序对部件进行排序,并在最后显示没有图像和参数的部件

按销售降序对部件进行排序,并在最后显示没有图像和参数的部件
EN

Stack Overflow用户
提问于 2019-11-09 22:52:15
回答 2查看 39关注 0票数 0

我需要首先显示按销售排序的零件(列名为sales_rotation_group),并显示在末尾没有图像和参数的零件。换句话说,首先显示具有图像和参数的部分,然后显示没有图像和参数的部分

让我们假设db结构如下:

零件

id (字符串)、sales_rotation_group (字符串)、parameters_count (整数)

美术馆

id (整数) part_id (整数)

图片

id (整数),galery_id (整数)

目前我有这个SQL,但是它不能正确地对各个部分进行排序。它显示了一些带有图像的零件和几个带有参数的零件,然后是没有参数的零件,然后是带有参数的零件。

代码语言:javascript
运行
AI代码解释
复制
SELECT  parts.* FROM parts
LEFT OUTER JOIN galleries
ON galleries.part_id = parts.id
LEFT OUTER JOIN images ON images.gallery_id = galleries.id
GROUP BY parts.id
ORDER BY parts.sale_rotation_group DESC, COUNT(images.id) DESC, parts.parameters_count DESC

我应该以某种方式使用分组吗?我想我可能会遇到这样的问题,一个零件可能有很好的销售(在查询结果的顶部),并且没有图像或参数。

EN

回答 2

Stack Overflow用户

发布于 2019-11-09 23:00:01

您可以更改ORDER BY子句,以便根据计数是否大于0而不是实际计数值进行排序。这将确保具有0个图像和0个参数的零件在末尾排序:

代码语言:javascript
运行
AI代码解释
复制
ORDER BY CASE WHEN COUNT(images.id) > 0 THEN 0 ELSE 1 END,
         CASE WHEN parts.parameters_count > 0 THEN 0 ELSE 1 END,
         parts.sale_rotation_group DESC

注意,使用UNION不会有什么帮助,因为UNION查询的输出顺序是未定义的,并且您仍然需要ORDER BY子句。

票数 1
EN

Stack Overflow用户

发布于 2019-11-09 23:05:28

您可以使用ORDER BY中的窗口函数来完成所需的操作:

代码语言:javascript
运行
AI代码解释
复制
SELECT p.*
FROM parts p LEFT OUTER JOIN
     galleries g
     ON g.part_id = p.id LEFT OUTER JOIN
     images i
     ON i.gallery_id = g.id
GROUP BY p.id
ORDER BY COUNT(i.id) OVER (PARTITION BY p.id) DESC,
         p.parameters_count DESC;

您可以包含p.sale_rotation_group作为第一个键。但是,这不是您对所需排序的描述的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58784253

复制
相关文章
修改文件的所有者和所在组
版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/90637699
zy010101
2019/07/02
2.4K0
修改文件的所有者和所在组
2.15 更改所有者和所属组chown
chown命令 chown介绍和例子 chown等于change owner 更改文件的所有者和所属组 [root@hf-01 ~]# ls /tmp aminglinux amning mysql.sock yum.log [root@hf-01 ~]# ls -l /tmp/yum.log 会看到yum.log的所有者是root -rw-r--r--. 1 root root 0 10月 26 07:48 /tmp/yum.log [root@hf-01 ~]#
运维小白
2018/02/06
2.1K0
LDAP 中 DN CN DC OU
DN 的英文名称是(distinguished name),直接翻译过来就是专有名称。
HoneyMoose
2020/09/29
2K0
LDAP 中 DN CN DC OU
目录权限已经更改所有者及所有组
文件或者目录权限chmod: chmod -(权限数字)-(目录或者文件)=修改权限 给2.txt 增加权限700  chmod -R 批量更新目录和目录下面的子文件的权限 给aming2以及下面的文
叶瑾
2018/06/14
2.4K0
Linux中文件权限,所有者,所属组修改
对于管理文件三个重要且常见的命令 (都需提供 root 权限)。 chmod: 修改文件的权限,SUID、SGID、SBIT 等的特性 chown: 修改文件的拥有者 chgrp: 修改文件所属用户组 一、[chmod]修改文件权限 1. 符号设定法 chmod [who] [+-=] [mode] 文件名 【who】即操作对象 u--- 用户(user) g--- 同组用户(group) o--- 其他用户(other) a--- 所有(all in)[默认] 【+-=】操作符 + 为其添加权限 - 为
入门笔记
2022/06/03
5.3K0
Linux中文件权限,所有者,所属组修改
通过ACLs实现权限提升
在内网渗透测试中我们经常会在几个小时内获得域管理权限,而造成这种情况的原因是系统加固不足和使用不安全的Active Directory默认值,在这种情况下公开的利用工具有助于发现和利用这些问题,并经常导致获得域管理权限,本篇博文描述了一个场景,在这个场景中我们的标准攻击方法不起作用,我们必须更深入地挖掘才能获得域中的高权限,我们描述了使用访问控制列表的更高级的权限提升攻击,并介绍了一个名为Invoke-Aclpwn的新工具和一个对ntlmrelayx的扩展,它可以自动执行这种高级攻击的步骤
Al1ex
2022/09/07
2.4K0
通过ACLs实现权限提升
Exchange 2013 OU大于500新建用户无法查询OU
近期一个项目中,在子域中部署了Exchange 2013 SP1,由于这边环境OU数量有4000+,导致新建用户时无法查询到组织单元,如下图:
李珣
2019/03/14
1.2K0
[802]linux修改文件或目录的所有者(chown)和用户组(chgrp)
文件或目录的用户组更改,注意:要更改的用户组,必须存在于“/etc/group”下
周小董
2020/05/13
24.1K0
Linux 批量修改目录权限,用户组和所有者;kill指定端口
shaun
2023/10/26
3230
Linux_17查看和修改文件权限,修改文件的所有者和所属组
视频在这里 p12-p17 p16 查看修改文件权限 16.1查看 ls -l既可以看到文件的权限 16.2修改文件权限 文字设定 chmode [who] +-= who 文件所有者u 文件所属组g 其他人o 所有都做修改a +-= +增加权限 -减少权限 =覆盖原来权限 mode: r :read读 w:write写 x:exute执行 $ ls -l total 4 -rw-rw-r-- 1 yinli yinli 0 5月 19 21:59 file1 -r
Y大宽
2019/05/23
5.7K0
使用 AD 诱饵检测 LDAP 枚举和Bloodhound 的 Sharphound 收集器
如何在 Active Directory 环境中检测 Bloodhound 的 SharpHound 收集器和 LDAP 侦察活动完成的枚举。我们将通过创建一些诱饵帐户(或蜂蜜帐户)并将它们与真实帐户混合来使用欺骗来检测这一点。诱饵帐户是为欺骗目的而创建的帐户,也用于防御以检测恶意行为。MITRE在其工具和技术中涵盖了Bloodhound和域枚举。
Khan安全团队
2021/12/27
2.7K0
内网学习笔记 | 4、域内信息收集
查看网关 IP 地址、DNS 的 IP 地址、域名、本机是否和 DNS 服务器处于同一网段。
TeamsSix
2021/03/05
3.5K0
内网学习笔记 | 4、域内信息收集
Powershell 命令实现每日给指定组添加全部AD成员
前言: 我们都知道AD中有组的概念,这组我们更多是用来进行权限的管理,公司里有一个系统登录需要确认登陆的AD账户是否是添加到指定的组中,只有加入组中的才有登录权限。现在每次在AD系统中新建人员后,需要再手动添加组成员,否则新账号无法登录这个系统。 解决问题思路: 通过Powershell命令获取AD中的全部成员,然后添加成员到这个组中。 用到的命令: get-aduser;add-adgroupmember 完整命令:
BigYoung小站
2020/05/05
1.1K0
获取域内管理员和用户信息
如果我们拿到了一台普通用户权限的windows计算机,想要在内网中横向移动,需要知道域内用户登录的位置,是否是本地管理员,他的组,是否有权访问文件共亨等等。
黑白天安全
2020/07/30
8.2K0
获取域内管理员和用户信息
在没有 Mimikatz 的情况下操作用户密码
通过利用Mimikatz的 lsadump::setntlm和lsadump::changentlm函数,过去已经涵盖了这两个用例。虽然Mimikatz是最好的攻击工具之一,但我会尽量避免使用它,因为它是反病毒和 EDR 工具的高度目标。在这篇文章中,我将专门讨论用例 #2 — 为横向移动或权限提升重置密码。
Khan安全团队
2022/03/21
2.2K0
LDAP 管理用户(组)
LDAP实现提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统。可以有效的解决众多网络服务的用户账户问题,规定了统一的身份信息数据库、身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性。
菲宇
2019/06/12
4.3K0
Django集成OpenLDAP认证
Django集成LDAP认证有现成的django-auth-ldap模块可以使用,本文也主要以这个模块的使用为主,先安装模块
37丫37
2019/04/25
1.9K0
第二章 OpenLDAP运维管理
phpLDAPadmin 是一款LDAP GUI客户端管理软件,它提供一个简单并且支持多种语言的LDAP管理软件。
Jerly.Yan
2023/07/18
2.5K0
LDAP协议介绍[通俗易懂]
1. 从用途上阐述LDAP,它是一个存储静态相关信息的服务,适合“一次记录多次读取”。常用LDAP服务存储的信息:
全栈程序员站长
2022/11/15
3.2K0
LDAP协议介绍[通俗易懂]
点击加载更多

相似问题

嵌套组所有者- LDAP查询

16

LDAP:查询OU中所有组的所有用户

011

返回指定OU中所有组的LDAP查询

10

导出所有Azure AD组,包括嵌套组及其成员和所有者(PowerShell)

118

从LDAP获取所有组和subGroups以及所有成员

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档