impossible to create a select query with sub select ?


Author
Message
DL9442
DL9442
Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)
Group: Forum Members
Posts: 5, Visits: 17
Hello,

I would have liked to create the following query to get an http response time distribution  

SELECT 'bigger than 3sec', count(*) as nbrequestbelowtime, (SELECT count(*) as nb_of_request_total FROM CurrentView where cs-uri LIKE '%/suite/sites/cpr%') as total
FROM CurrentView
where cs-uri LIKE '%/suite/sites/cpr%' AND time-taken > 3000;

but after a while i get the following error

 ---- Query Failed ----

Unable to interpret SELECT statement. Field, function, or expression expected.

What could be wrong with this query ?


Replies
DL9442
DL9442
Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)
Group: Forum Members
Posts: 5, Visits: 17
Thanks for the tips .... i've finally achieved my goal with the following query 

SELECT nbabovetime,total  FROM(
SELECT sum(isrequestabovetime) as nbabovetime , count(*) as total FROM (SELECT CASE WHEN time-taken > 1000 THEN 1 ELSE 0 END AS isrequestabovetime,cs-uri FROM CurrentView WHERE cs-uri LIKE '%/suite/sites/cpr%') );


Any clue to get the percentage at the end ?  (nbabovetime/total)*100 is not accepted 

 
LogViewPlus Support
LogViewPlus Support
Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)
Group: Moderators
Posts: 1.3K, Visits: 4.4K
That's a good solution - thanks for sharing.  

To calculate the percentage, you can try:
SELECT nbabovetime,total, CAST(ROUND(100.0 * (nbabovetime / total), 2) AS DECIMAL) as Percent
FROM(
    SELECT sum(isrequestabovetime) as nbabovetime , count(*) as total
    FROM (
        SELECT CASE WHEN time-taken > 1000 THEN 1 ELSE 0 END AS isrequestabovetime,cs-uri FROM CurrentView WHERE cs-uri LIKE '%/suite/sites/cpr%'
    )
);


Hope that helps,

Toby
DL9442
DL9442
Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)Junior Member (51 reputation)
Group: Forum Members
Posts: 5, Visits: 17
Sorry, i've the following error now : Error in ROUND: 100.0 is not a valid value for Double.
LogViewPlus Support
LogViewPlus Support
Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)Supreme Being (12K reputation)
Group: Moderators
Posts: 1.3K, Visits: 4.4K
Thanks for reporting this issue. 

I had a look at the Round function and couldn't find a matching error message, so I am not sure what could be going wrong.  I have tested the 'Round' SQL statement above and it seems to be working fine.  Do you know what data type you are passing into the Round function?  Is '100.0' a string?  Are you able to paste the full SQL statement you are trying to execute?

I also wanted to let you know that we have now implemented sub-queries in SELECT fields, so your original SQL statement will work in the next version of LogViewPlus (v3.0.23 or greater).  Thanks for highlighting this issue.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Login

Explore
Messages
Mentions
Search