Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1057045
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T17:48:22+00:00 2026-05-16T17:48:22+00:00

In the following : ( running a query on the Stack Exchange Data Explorer

  • 0

In the following:
(running a query on the Stack Exchange Data Explorer, which uses an SQL Azure implementation of OData. The FAQ says it supports most of the TSQL commands):

DECLARE @MinPosts int = ##MinNumberOfPosts##
SELECT
    Id AS [User Link],
    Reputation,
    (SELECT COUNT(*)
    FROM posts
    WHERE posts.OwnerUserId = Users.Id
    ) AS [# Posts],
    Reputation /
    (SELECT COUNT(*)
    FROM posts
    WHERE posts.OwnerUserId = Users.Id
    ) AS [Rep Per Post]
FROM Users
WHERE (SELECT COUNT(*)
    FROM posts
    WHERE posts.OwnerUserId = Users.Id
    ) > @MinPosts
ORDER BY [Rep Per Post] DESC

I write out:

(SELECT COUNT(*)
FROM posts
WHERE posts.OwnerUserId = Users.Id)

three times. How can I create a variable or a function for the above snippet of code?

I tried using the column alias [# Posts], but that didn’t work.

I found these posts on reusing a calculated filed name for further calculation, which seems like what I want, but I can’t figure out how to apply it.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T17:48:22+00:00Added an answer on May 16, 2026 at 5:48 pm

    Since you need the count for every user in the whole database and thus every post, just do it the straightforward way:

    SELECT
        Id AS [User Link],
        Reputation,
        Reputation * 1.0 / C.Cnt AS [Rep Per Post]
    FROM
       Users U
       INNER JOIN (
          SELECT OwnerUserId, Cnt = Count(*)
          FROM posts
          GROUP BY OwnerUserID
          HAVING Count(*) >= ##MinNumberOfPosts##
       ) C ON U.Id = C.OwnerUserId
    ORDER BY [Rep Per Post] DESC
    

    You may find this gives the same execution plan as the CROSS APPLY solution, but that would only be because the engine is clever enough to avoid the correlated subquery and switch it to a simple aggregate as this query explicitly denotes. If CROSS APPLY really performs better I’m quite interested to know why.

    P.S. I added * 1.0 because I’m guessing (not sure of the engine here) that integer division yields integers and it seems like you’d probably want fractions. You’ll have to experiment.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am running following query in SQL*Plus CREATE TABLE tbl_audit_trail ( id NUMBER(11) NOT
The following query is given in a PL/SQL procedure . SELECT e.data FROM extra
I'm running the following query: ' Show which halls they are eligible for. Dim
Im running the following query from my PhpMyadmin sql tab CREATE TRIGGER testTrigger AFTER
I am running following query. SELECT T1.C1, T2.C2..., IF( T1.C1<>T2.C1,Changed,1) AS NewColumn From T1
I am running following query.. Select T1.* from T1 LEFT JOIN T2 ON T1.C1
I am running following LINQ query in order to group by CategoryID var test
I am running the following query and checking whether it returns any results and
I tried running the following query to restore a database: restore database myDatabase from
I'm running the following query SELECT ROW_NUMBER() OVER(ORDER BY [TransactionValues].[ID]) AS idx, [Transactions].[ID] AS

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.