簡體   English   中英

如何計算SQL中的多個字段

[英]how to count multiple fields in sql

嘿,我發現很多人問的問題與我的相似,但不完全相同。

我有一個存儲IP的數據庫。 有一個服務器字段和一個客戶端字段。 我想瀏覽這兩個字段,並為它們提取所有不同的IP,然后找出每個IP作為客戶端和服務器出現了多少次。

http://forums.devx.com/showthread.php?t=19168 <-這有點相似,但不太完全。

這就是我現在所擁有的:

use mydb   
select y.client_ip as "IP",  
(select count(*)  
from t_Events x  
where start_time BETWEEN '10/7/2010 08:00:00 AM' AND '10/7/2010 04:00:00 PM' AND     x.client_ip = y.client_ip) as "Count of client IP",  
(select count(*)  
from t_Events x  
where start_time BETWEEN '10/7/2010 08:00:00 AM' AND '10/7/2010 04:00:00 PM' AND   x.client_ip = y.server_ip) as "Count of Server IP"  
from t_Events y  
Group By y.client_ip, y.server_ip  

這沒有用,因為我意識到我只查看client_ip字段中的IP。

那么,如何計算每個IP在服務器和客戶端字段中顯示的時間? 我需要先制作一個臨時表嗎?

嘗試這樣的事情:

select IP, sum(ClientCount) as ClientCount, sum(ServerCount) as ServerCount
from (
    select client_ip as IP, count(*) as ClientCount, null
    from t_Events
    where start_time BETWEEN '10/7/2010 08:00:00 AM' AND '10/7/2010 04:00:00 PM'
    group by client_ip 
    union all
    select server_ip as IP, null, count(*) as ServerCount
    from t_Events
    where start_time BETWEEN '10/7/2010 08:00:00 AM' AND '10/7/2010 04:00:00 PM'
    group by server_ip 
) a
group by IP 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM