久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在 TSQL 上使用 INNER JOIN 時的雙計數結果

Double count result when using INNER JOIN on TSQL(在 TSQL 上使用 INNER JOIN 時的雙計數結果)
本文介紹了在 TSQL 上使用 INNER JOIN 時的雙計數結果的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在使用以下查詢來計算所有腳本運行的次數,但是當一個軟件有 2 種類型時,它會將計數結果加倍.

I'm using the following query to count all scripts runs, but when there are 2 types for a software, it doubles the count result.

這是我正在使用的查詢:

Here is query I'm using:

SELECT 
    p.produto, p.pacote, 
    COUNT(p.produto) AS Execu??es, 
    CONVERT(VARCHAR, AVG(DATEDIFF(SECOND, p.inicio, p.fim)) / 60) + ':' + RIGHT('0' + CONVERT(VARCHAR, AVG(DATEDIFF(SECOND, p.inicio, p.fim)) % 60), 2) AS [Tempo Médio (Automatizado)], 
    t.tempo_minutos AS [Tempo Médio (Manual)], 
    CONVERT(VARCHAR, (t.tempo_minutos * 60 - AVG(DATEDIFF(SECOND, p.inicio, p.fim))) / 60) + ':' + RIGHT('0' + CONVERT(VARCHAR, (t.tempo_minutos * 60 - AVG(DATEDIFF(SECOND, p.inicio, p.fim))) % 60), 2) AS [Economia Média], 
    CONVERT(VARCHAR, (t.tempo_minutos * 60 - AVG(DATEDIFF(SECOND, p.inicio, p.fim))) * COUNT(p.produto) / 60)  + ':' + RIGHT('0' + CONVERT(VARCHAR, (t.tempo_minutos * 60 - AVG(DATEDIFF(SECOND, p.inicio, p.fim))) * COUNT(p.produto) % 60), 2) AS [Economia Total]
FROM 
    [log].pdq AS p 
INNER JOIN 
    infra.tempo_medio_execucao AS t ON t.produto = p.produto
WHERE 
    (p.equipamento NOT LIKE 'XXX%') AND (p.status = 'Sucesso')
GROUP BY 
    p.produto, p.pacote, t.tempo_minutos

此查詢返回以下結果(從表中刪除了不必要的信息):

This query is returning the following result (removed the unnecessary info from the table):

produto  | pacote        | Execu??es
---------+---------------+-----------    
SafeSign | Desinstala??o | 6
SafeSign | Instala??o    | 18
ScanBack | Instala??o    | 128

它應該返回的地方:

produto  | pacote        |  Execu??es
---------+---------------+-----------    
SafeSign | Desinstala??o | 3
SafeSign | Instala??o    | 9
ScanBack | Instala??o    | 128

在 infra.tempo_medio_execucao 表中,我有這個數據:

In the infra.tempo_medio_execucao table, I have this data:

produto      | pacote        | tempo_minutos 
-------------+---------------+--------------
ScanBack     | Instala??o    | 20
Siric Zero   | Instala??o    | 20
GRRF         | Instala??o    | 90
SICCH        | Instala??o    | 15
Outlook 2013 | Instala??o    | 25
7-Zip        | Instala??o    | 20
7-Zip        | Desinstala??o | 20
SafeSign     | Instala??o    | 20
SafeSign     | Desinstala??o | 20

表 log.pdq 將返回:

The table log.pdq will return:

id | produto   | pacote      | inicio                  | fim                     | duracao          | status 
---+-----------+-------------+-------------------------+-------------------------+------------------+--------
1  | ScanBack  | Instala??o  | 2018-09-18 11:22:54.000 | 2018-09-18 11:27:43.000 | 00:04:49.0000000 | Sucesso 
2  | ScanBack  | Instala??o  | 2018-09-18 12:10:46.000 | 2018-09-18 12:11:04.000 | 00:00:17.0000000 | Sucesso 
3  | ScanBack  | Instala??o  | 2018-09-18 12:10:49.000 | 2018-09-18 12:11:17.000 | 00:00:27.0000000 | Sucesso 
4  | GRRF      | Instala??o  | 2018-09-18 12:28:43.000 | 2018-09-18 12:29:14.000 | 00:00:30.0000000 | Sucesso

我創建的視圖返回:(但對于 Safesign,它應該返回 3 和 9,而不是 6 和 18)

And the view I've created returns: (but for Safesign, it should return 3 and 9, not 6 and 18)

Produto    |  Pacote       | Execu??es  | Tempo Médio (Automatizado) | Tempo Médio (Manual) | Economia Média  | Economia Total
-----------+---------------+------------+----------------------------+----------------------+-----------------+----------------
GRRF       | Instala??o    | 1          | 0:31                       | 90                   | 89:29           | 89:29
SafeSign   | Desinstala??o | 6          | 0:00                       | 20                   | 20:00           | 120:00
SafeSign   | Instala??o    | 18         | 1:19                       | 20                   | 18:41           | 336:18
ScanBack   | Instala??o    | 128        | 1:23                       | 20                   | 18:37           | 2382:56
SICCH      | Instala??o    | 7          | 0:34                       | 15                   | 14:26           | 101:02
Siric Zero | Instala??o    | 208        | 0:33                       | 20                   | 19:27           | 4045:36

提前致謝!

推薦答案

我懷疑這符合您在問題中指定的內容:

I suspect that this does what you specify in the question:

SELECT p.produto, p.pacote, 
       COUNT(DISTINCT p.produto) AS Execu??es, 
       . . .

你會從你的連接中得到重復——基本上是意外的匹配.

You would be getting duplicates from your joins -- basically unexpected matches.

但是,其他列也很可能(很可能)不準確.如果這解決了 Execu??es 的問題,但您仍然有其他問題,請詢問另一個問題.非常清楚示例數據、預期結果以及需要修復的內容.

However, it is quite possible (likely) that other columns are also inaccurate. If this fixes the issue with Execu??es, but you still have other issues, then ask another question. Be very clear about sample data, desired results, and what needs to be fixed.

這篇關于在 TSQL 上使用 INNER JOIN 時的雙計數結果的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Modify Existing decimal places info(修改現有小數位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運算符字符串中刪除重復項)
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 国产免费一区二区 | 日韩在线中文 | 午夜免费观看体验区 | 欧美激情精品久久久久久 | 国产精品 亚洲一区 | 爱爱视频网 | 日韩精品一区二区三区老鸭窝 | 欧美成人久久 | 男女羞羞免费视频 | 99精品久久99久久久久 | 久久久黄色 | 国产日韩欧美一区二区 | 国产激情91久久精品导航 | 久久99深爱久久99精品 | 久久久激情 | 91成人在线| 日本三级播放 | 成人午夜激情 | 日韩亚洲视频在线 | 羞羞视频免费观看入口 | 99re| 久久精品国产清自在天天线 | 国产综合视频 | 久久久精品一区二区 | 国产 亚洲 网红 主播 | 在线永久看片免费的视频 | 久久精彩视频 | 最新一级毛片 | 国产精品欧美一区二区 | 精品久草 | 国产高清性xxxxxxxx | 亚洲一区二区三区在线视频 | 视频一区在线观看 | 成人黄色电影在线观看 | 国产精品欧美一区二区三区不卡 | 久草在线 | 午夜精品久久久久久久久久久久 | 国产精品99久久久久久宅男 | 伊人色综合久久久天天蜜桃 | 亚洲一区二区三区久久 | 亚洲视频免费在线播放 |