SQL 在独特过滤器中插入附加字段
SQL Insert Additional Field in Distinct Filter
我想插入一个附加字段,以便在从 SQL 数据库检索记录时与现有字段结合使用。
当前查询:
SELECT CONVERT(date, [DateTime]) 'Date of Download',
ActionBy AS 'User Full Name',
COUNT(DISTINCT Identifier) 'Number of Downloads'
FROM [dbo].[AuditLog]
WHERE ActionTaken = 'Clicked'
AND Type = 'Attachment Link'
AND CONVERT(date, [DateTime]) BETWEEN CONVERT(date,'" + scanStartDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
AND CONVERT(date,'" + scanEndDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
GROUP BY CONVERT(date, [DateTime]), ActionBy
HAVING COUNT(DISTINCT Identifier) > " + limit + "
ORDER BY COUNT(DISTINCT Identifier) DESC";
我想在 DISTINCT
过滤器中使用现有的 Identifier
插入一个额外的过滤器 Remarks
。
示例:
COUNT(DISTINCT Identifier + Remarks) 'Number of Downloads'
我可以知道如何修改我当前的声明吗?
谢谢
示例数据:
其他列已最小化以最大化可见性。
尝试:
SELECT CONVERT(date, [DateTime]) 'Date of Download',
ActionBy AS 'User Full Name',
COUNT(DISTINCT Identifier) + ' ' + COUNT(DISTINCT Remarks) 'Number of Downloads'
FROM [dbo].[AuditLog]
WHERE ActionTaken = 'Clicked'
AND Type = 'Attachment Link'
AND CONVERT(date, [DateTime]) BETWEEN CONVERT(date,'" + scanStartDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
AND CONVERT(date,'" + scanEndDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
GROUP BY CONVERT(date, [DateTime]), ActionBy
HAVING COUNT(DISTINCT Identifier) > " + limit + "
ORDER BY COUNT(DISTINCT Identifier) DESC";
您可以 select 如下所示的字段,方法是将 FileID 转换为 NVARCHAR
COUNT(DISTINCT CAST(FileID AS NVARCHAR(10)) + Title) 'Number of Downloads'
我想插入一个附加字段,以便在从 SQL 数据库检索记录时与现有字段结合使用。
当前查询:
SELECT CONVERT(date, [DateTime]) 'Date of Download',
ActionBy AS 'User Full Name',
COUNT(DISTINCT Identifier) 'Number of Downloads'
FROM [dbo].[AuditLog]
WHERE ActionTaken = 'Clicked'
AND Type = 'Attachment Link'
AND CONVERT(date, [DateTime]) BETWEEN CONVERT(date,'" + scanStartDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
AND CONVERT(date,'" + scanEndDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
GROUP BY CONVERT(date, [DateTime]), ActionBy
HAVING COUNT(DISTINCT Identifier) > " + limit + "
ORDER BY COUNT(DISTINCT Identifier) DESC";
我想在 DISTINCT
过滤器中使用现有的 Identifier
插入一个额外的过滤器 Remarks
。
示例:
COUNT(DISTINCT Identifier + Remarks) 'Number of Downloads'
我可以知道如何修改我当前的声明吗?
谢谢
示例数据:
其他列已最小化以最大化可见性。
尝试:
SELECT CONVERT(date, [DateTime]) 'Date of Download',
ActionBy AS 'User Full Name',
COUNT(DISTINCT Identifier) + ' ' + COUNT(DISTINCT Remarks) 'Number of Downloads'
FROM [dbo].[AuditLog]
WHERE ActionTaken = 'Clicked'
AND Type = 'Attachment Link'
AND CONVERT(date, [DateTime]) BETWEEN CONVERT(date,'" + scanStartDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
AND CONVERT(date,'" + scanEndDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')
GROUP BY CONVERT(date, [DateTime]), ActionBy
HAVING COUNT(DISTINCT Identifier) > " + limit + "
ORDER BY COUNT(DISTINCT Identifier) DESC";
您可以 select 如下所示的字段,方法是将 FileID 转换为 NVARCHAR
COUNT(DISTINCT CAST(FileID AS NVARCHAR(10)) + Title) 'Number of Downloads'