Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 2017年向不同类别颁发的最大许可证数量_Sql_Sql Server - Fatal编程技术网

Sql 2017年向不同类别颁发的最大许可证数量

Sql 2017年向不同类别颁发的最大许可证数量,sql,sql-server,Sql,Sql Server,我想找出2017年针对不同类别颁发的最大许可证数量。请帮忙 SELECT YEAR(BL.[Issued]) as YearIssuesd, BL.[Category] as Category, COUNT(*) as TotalLicenceIssued from [dbo].[businesslicences$] BL GROUP BY YEAR(BL.[Issued]), (BL.[Category]) HAVING COUNT

我想找出2017年针对不同类别颁发的最大许可证数量。请帮忙

SELECT
    YEAR(BL.[Issued]) as YearIssuesd,
    BL.[Category] as Category, 
    COUNT(*) as TotalLicenceIssued 
from
    [dbo].[businesslicences$] BL 
GROUP BY
    YEAR(BL.[Issued]),
    (BL.[Category])
HAVING
    COUNT(*) = (
        SELECT
            MAX(MC)
        FROM
        (
            SELECT
                COUNT( BL.[Licence No#] ) AS MC
            from
                [dbo].[businesslicences$] BL
            GROUP BY BL.[Category]
        )
2017年向不同类别颁发的最大许可证数量

我想找出2017年针对不同类别颁发的最大许可证数量

您编写的很少,也没有提供源表数据和预期输出数据的示例。但我推断你想要这样的东西

SELECT
    YEAR( bl.Issued ) AS YearIssued, /* This will always be '2017' due to the WHERE clause */
    bl.Category,
    COUNT(*) AS Number_of_licenses_issued_this_year_in_this_category
FROM
    dbo.[BusinessLicenses$] AS bl
WHERE
    YEAR( bl.Issued ) = 2017
GROUP BY
    YEAR( bl.Issued ),
    bl.Category
要获取单个最大值,请使用
Top1。。。按本年颁发的本类别描述中的许可证数量排序

SELECT
    TOP 1

    YEAR( bl.Issued ) AS YearIssued, /* This will always be '2017' */
    bl.Category,
    COUNT(*) AS Number_of_licenses_issued_this_year_in_this_category
FROM
    dbo.[BusinessLicenses$] AS bl
WHERE
    YEAR( bl.Issued ) = 2017
GROUP BY
    YEAR( bl.Issued ),
    bl.Category
ORDER BY
    Number_of_licenses_issued_this_year_in_this_category DESC
但要求“2017年针对不同类别颁发的许可证的最大数量”是没有意义的,因为“最大数量X”要求X是一组值,但在您发布的查询中,X只是一个标量(计数(*)的结果)

换句话说,我希望从2016年到2018年,每年有最多数量的许可证发放。但是[license No#]中的值是varchar,因此我无法应用聚合函数

预期结果

年 类别 许可证计数 2016 A. 3452 2017 B 345 2018 D 7876
看起来你只是想要发布的总数量(每个类别,每年)。“不同类别的最大数量”是什么意思?
dbo.businesslicenses$
CREATE TABLE
语句是什么?为什么表名中有一个美元符号?$symbol的存在是因为数据库名和表名是相同的,
$
不是这样的(请参阅),因为它在方括号中转义,所以它是字面上理解的——除非有歧义,否则名称是否相同并不重要。如果我的答案不是你想要的,那么你的问题就太不清楚了。请发布您的输入数据和预期输出数据的样本。我希望每个类别的最大许可证数量year@AnkitSharma我认为当你说“每年每类最多”时,你没有正确使用术语。你明白我为什么说那是毫无意义的声明吗?没有最大值,因为每年每个类别只有一个标量值。我想为我的数据库派生一个KPI。其中,我必须在许可证编号计数上实现聚合函数,如MAX、AVG