Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >按主要版本列出软件的SQL查询

按主要版本列出软件的SQL查询
EN

Database Administration用户
提问于 2015-05-13 07:45:59
回答 2查看 669关注 0票数 1

我有下面的代码,为了让它在每个主要版本的结果中只显示一行,我需要合并所有类似的行。

代码语言:javascript
运行
AI代码解释
复制
SELECT
COUNT(arp.displayname) AS 'Count'
,arp.displayname
,swc.MajorVersion
,arp.Publisher

FROM
Inv_AddRemoveProgram arp
INNER JOIN
vComputer vc
ON arp.[_ResourceGuid] = vc.[Guid]
inner join
[Inv_Software_Component] swc on arp._SoftwareComponentGuid = swc._ResourceGuid


WHERE
arp.DisplayName NOT IN
(
'Power Scheme Plug-in Setup'
,'Altiris Inventory Agent'
,'Patch Management Agent'
,'Deployment Solution Agent'
,'Software Management Solution Agent'
,'Altiris Application Metering Agent'
,'Symantec pcAnywhere'
,'Symantec_pcAnywhere_plugin_installer'
,'Software Management Solution Plugin'
)
AND
arp.DisplayName NOT LIKE 'Security Update%'
AND
arp.DisplayName NOT LIKE 'Update for%'
AND
arp.DisplayName NOT LIKE 'Hotfix for%'
AND
arp.DisplayName NOT LIKE '%SQL_PRODUCT_SHORT%'
GROUP BY
arp.DisplayName, arp.Publisher, swc.MajorVersion

order by
arp.DisplayName asc

结果:

代码语言:javascript
运行
AI代码解释
复制
Count   displayname MajorVersion

41  Adobe Reader 8  8

1   Adobe Reader 8.1.1  8

40  Adobe Reader 8.1.3  8

1   Adobe Reader 9.3    9

1   Adobe Reader 9.3.3  9

1   Adobe Reader 9.4.0  9

1   Adobe Reader 9.5.5  9

4   Adobe Reader X (10.1.13)    10

1   Adobe Reader X (10.1.4) 10

1   Adobe Reader X MUI  10

7   Adobe Reader XI 11

139 Adobe Reader XI (11.0.02)   11

1   Adobe Reader XI (11.0.03)   11

2   Adobe Reader XI (11.0.06)   11

28  Adobe Reader XI (11.0.07)   11

1   Adobe Reader XI (11.0.08)   11

62  Adobe Reader XI (11.0.09)   11

5527    Adobe Reader XI (11.0.10)   11

3   Adobe Reader XI (11.0.10)  MUI  11
EN

回答 2

Database Administration用户

发布于 2015-05-13 08:00:28

尝试如下:我删除了几个字段,并将组更改为

代码语言:javascript
运行
AI代码解释
复制
SELECT
COUNT(arp.displayname) AS 'Count'
,arp.displayname
-- remove these fields
--,swc.MajorVersion
--,arp.Publisher

FROM
Inv_AddRemoveProgram arp
INNER JOIN
vComputer vc
ON arp.[_ResourceGuid] = vc.[Guid]
inner join
[Inv_Software_Component] swc on arp._SoftwareComponentGuid = swc._ResourceGuid


WHERE
arp.DisplayName NOT IN
(
'Power Scheme Plug-in Setup'
,'Altiris Inventory Agent'
,'Patch Management Agent'
,'Deployment Solution Agent'
,'Software Management Solution Agent'
,'Altiris Application Metering Agent'
,'Symantec pcAnywhere'
,'Symantec_pcAnywhere_plugin_installer'
,'Software Management Solution Plugin'
)
AND
arp.DisplayName NOT LIKE 'Security Update%'
AND
arp.DisplayName NOT LIKE 'Update for%'
AND
arp.DisplayName NOT LIKE 'Hotfix for%'
AND
arp.DisplayName NOT LIKE '%SQL_PRODUCT_SHORT%'
--change the group by
--GROUP BY
--arp.DisplayName, arp.Publisher, swc.MajorVersion

-- to this
group by arp.DisplayName


order by
arp.DisplayName asc
票数 1
EN

Database Administration用户

发布于 2015-05-13 08:56:31

我没有办法测试这一点,但我使用了显示名称的支点和为其他产品创建的动态列,并将清理后的Inv_AddRemoveProgram表移到临时表中:

代码语言:javascript
运行
AI代码解释
复制
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);

SELECT *
INTO #tmp
FROM Inv_AddRemoveProgram arp
WHERE arp.DisplayName NOT IN
        (
        'Power Scheme Plug-in Setup'
        ,'Altiris Inventory Agent'
        ,'Patch Management Agent'
        ,'Deployment Solution Agent'
        ,'Software Management Solution Agent'
        ,'Altiris Application Metering Agent'
        ,'Symantec pcAnywhere'
        ,'Symantec_pcAnywhere_plugin_installer'
        ,'Software Management Solution Plugin'
        )
    AND arp.DisplayName NOT LIKE 'Security Update%'
    AND arp.DisplayName NOT LIKE 'Update for%'
    AND arp.DisplayName NOT LIKE 'Hotfix for%'
    AND arp.DisplayName NOT LIKE '%SQL_PRODUCT_SHORT%'

SELECT @cols = STUFF((SELECT ',' + QUOTENAME(arp.displayname) 
                    from Inv_AddRemoveProgram arp
                    group by arp.displayname
                    order by arp.displayname
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

SET @query = 'SELECT MajorVersion, ' + @cols + ' 
FROM (SELECT
        arp.displayname
        ,swc.MajorVersion
        ,arp.Publisher

        FROM
        #tmp arp
        INNER JOIN
        vComputer vc
        ON arp.[_ResourceGuid] = vc.[Guid]
        inner join
        [Inv_Software_Component] swc on arp._SoftwareComponentGuid = swc._ResourceGuid

        order by
        arp.DisplayName asc) AS SOURCE
PIVOT
(
    COUNT(DisplayName)
    FOR DisplayName IN (' + @cols + ')
) AS PIVOT;'

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

https://dba.stackexchange.com/questions/101420

复制
相关文章
SQL中查询优化的主要策略
为了能提高查询效率按优先级主要有一下策略: 1、尽可能早的执行选择操作(最基本的一条) 2、把笛卡尔积和随后的选择操作合并成F连接运算 3、同时计算一连串的选择和投影运算 4、保留同一子式的结果 5、适当对关系文件进行预处理 6、计算表达式之前先估算怎么计算效率最高
用户1215536
2018/02/05
2K0
「SQL面试题库」 No_102 按年度列出销售总额
题目介绍: 按年度列出销售总额 total-sales-amount-by-year
不吃西红柿
2023/10/16
2370
LeetCode MySQL 1384. 按年度列出销售总额
编写一段SQL查询每个产品每年的总销售额,并包含 product_id, product_name 以及 report_year 等信息。
Michael阿明
2021/02/19
4610
软件测试最常用的 SQL 命令 | 掌握基本查询、条件查询、聚合查询
去重-现在想知道titles表中的岗位头衔有多少种,就需要对title进行去重处理
Hogwarts_测试
2022/06/10
9700
软件测试最常用的 SQL 命令 | 掌握基本查询、条件查询、聚合查询
去重-现在想知道titles表中的岗位头衔有多少种,就需要对title进行去重处理
霍格沃兹测试开发
2022/06/10
1.3K0
软件测试|SQL指定查询条件,WHERE的使用
使用 SQL 从单个表或者多表联合查询数据时,可以使用 WHERE 子句指定查询条件。当给定查询条件时,只有满足条件的数据才会被返回。建议您使用 WHERE 子句来过滤记录,以获取必要的结果集。
霍格沃兹测试开发Muller老师
2023/06/02
1.1K0
在sql server里,日期字段按天数进行group by查询的方法
比如一张表里有如下时间字段的记录: 2009-01-01 12:00:00 2008-12-23 11:00:11 2009-12-22 11:22:00 2009-01-01 14:00:00 2009-12-22 12:00:09
跟着阿笨一起玩NET
2018/09/18
6.6K0
[译] Python各版本的主要更改
本文总结了Python 3.7到3.12的语法及标准库的主要更改,并且介绍了typing模块的主要更改。此外,还提到了各个版本的EOL(End of Life,Python官方不再提供安全补丁的日期)。
一只大鸽子
2024/03/04
3450
[译] Python各版本的主要更改
数据库按条件查询语句_sql多条件筛选语句
在SQL中,insert、update、delete和select后面都能带where子句,用于插入、修改、删除或查询指定条件的记录
全栈程序员站长
2022/10/03
4K0
数据库按条件查询语句_sql多条件筛选语句
软件测试最常用的 SQL 命令 | 通过实例掌握基本查询、条件查询、聚合查询
去重-现在想知道titles表中的岗位头衔有多少种,就需要对title进行去重处理
霍格沃兹测试开发Muller老师
2023/01/10
1K0
软件测试必备的数据库SQL查询语法
数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域。在现实工作中,我们的软件测试工作通常与数据库密切相关。所以作为一名合格的软件测试岗位工作者对于一些常用的SQL 查询语法必须要掌握:
小雯子打豆豆
2021/09/23
2.9K0
软件测试必备的数据库SQL查询语法
在高版本ES种使用sql语法查询
在没有kibana界面的情况下,手写ES的querydsl还是有点难度的,好在高版本的ES中,我们可以使用sql语法来写查询语句。
保持热爱奔赴山海
2024/05/24
3820
autocad是建筑、制造、机械、土木等行业的主要软件——全版本获取
autocad是建筑、制造、机械、土木等行业的主要软件之一。Autocad可以实现2D绘图和3D建模,并且拥有大量的标准符号库和工具,方便用户进行快速而精确的绘图和建模。本篇文章将重点介绍Autocad标准符号库实用教程的相关内容。
用户7442032
2023/04/07
5460
sql的嵌套查询_sql子查询嵌套优化
最近在做各类小应用,用到了MYSQL,有时候会用到一些比较复杂的嵌套查询,在研究怎么通过SQL实现这些。 假设下面这张表(stu)描述学生的基本信息:
全栈程序员站长
2022/09/22
5.4K0
composer show 列出所有可用的软件包
https://getcomposer.org/doc/03-cli.md#show
很酷的站长
2023/02/17
8320
composer show 列出所有可用的软件包
sql中的嵌套查询_sql的多表数据嵌套查询
测试的时候发现取出的是一条数据, 因为测试的时候是一天中的两条数据, 没有不同的日期,所以当日以为是正确的 ,然而第二天写入数据了,要取出数据,却发现没有数据, 返回空的行, 以为都是代码又有问题 了,找了半天都没有 ,仔细看看了存储过程中的代码,发现这样返回的数据的确是空的。
全栈程序员站长
2022/09/22
7.3K0
sql嵌套查询例子_sql的多表数据嵌套查询
查询学生上课人数超过 “Eastern Heretic” 的任意一门课的学生人数的课程信息,请使用 ANY 操作符实现多行子查询。(Lintcode刷题记录)
全栈程序员站长
2022/09/22
3.2K0
hibernate sql查询_sql server查询命令
SQLQuery接口用于接受一个sql语句进行查询,然后调用list()或uniqueResult()进行查询。但是sql语句不会直接封装到实体对象里,需要手写代码才可以封装到实体中。
全栈程序员站长
2022/11/11
2.8K0
【软件架构】2022 年软件行业的主要趋势
关键要点 混合工作将继续存在。要问的关键问题包括:什么是正确的平衡?我们需要多少时间亲自在一起?入职如何受到影响?另外,就时区而言,我们需要同步多少时间? 康威定律可能有 COVID 推论;能够有效开发松散耦合系统(通常具有微服务架构)的公司最好设置为远程工作并使用分布式方法。使微服务工作的是独立且高度一致的团队和人员。 2021 年,数据工程和 AI/ML 领域出现了三个有趣的发展:数据管理——摄取和清理数据;基础设施——基于云技术的数据工程平台和服务的兴起;和运维——“DataOps”的出现和DevO
架构师研究会
2022/03/14
5290
Spark Sql 源码剖析(一):sql 执行的主要流程
之前写过不少 Spark Core、Spark Streaming 相关的文章,但使用更广泛的 Spark Sql 倒是极少,恰好最近工作中使用到了,便开始研读相关的源码以及写相应的文章,这篇便作为 Spark Sql 系列文章的第一篇。
codingforfun
2018/08/24
2.2K0
Spark Sql 源码剖析(一):sql 执行的主要流程

相似问题

列出所有的新手(SQL查询)

10

如何查询SQL Server中主要插入哪个表?

10

SQL查询组按联接

10

列出所有正在运行的SQL服务的sql查询或方法。

20

Sql按子查询行分组

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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