16

Where can I find a syntax or language reference for the query language used on http://data.stackexchange.com/?

  • The language is T-SQL. – BoltClock's a Unicorn Jun 21 '12 at 20:54
  • 1
    It's just T-SQL. Are you asking about something beyond that? – Tim Stone Jun 21 '12 at 20:54
  • 3
    Beyond that, a reference for all the special stuff might be useful as well. There's parameters, links, the site:// thing, magic columns and all that weird stuff. I think someone mentioned a graphing function once as well. – a cat Jun 21 '12 at 20:57
  • Here's the Database schema documentation for the public data dump and Data Explorer which can help. Also it has a faq which includes some interesting tidbits on magic aliases and parameters – Some Helpful Commenter Jun 21 '12 at 20:57
  • 1
    @Tim, that's the answer. I've never heard of TSQL. I was just trying to figure out how to write simple things like select (*) from Users where LastAccessDate >= (Now - 90) (active users in last 90 days), but have no idea what the correct function words are. – matt wilkie Jun 21 '12 at 21:01
  • @lunboks Updated help documentation is forthcoming, I promise. :P – Tim Stone Jun 21 '12 at 21:03
12

The Stack Exchange Data Explorer now has a tutorial to get you started, the help states that SEDE runs on Microsoft SQL Server.

When creating a query the right side shows the tables and columns available. The functional details of the schema are described and updated here: Database schema documentation

The database is run on an instance of Microsoft Sql Server and therefor that sql dialect should be used, commonly known as T-SQL. The current version is Microsoft SQL Server 2017 (RTM-CU14) (KB4484710).

Here is an example query to get you going and that demonstrates the features for parameters and magic links as well:

-- Score: Score on the post "a number"
-- UserId: Your User id "That is the id in url on the site"
select u.id as [User Link]
     , p.id as [Post Link]
     , c.id as [Comment Link]
from comments c 
inner join posts p on p.id = c.postid
inner join users u on p.owneruserid = u.id
where c.userid = ##UserId##
and p.score > ##Score:int?2##

Or this example that shows a nice graph (as seen in this answer by Shog9)

  • 2
    Unless I'm missing something, the SEDE tutorial doesn't actually say that the language is T-SQL, does it? That seems like vital information. – David Z Aug 21 '16 at 8:02
  • @DavidZ right, the help does, so I re-added that again. – rene Aug 21 '16 at 8:57
  • @DavidZ oops, good catch. We'll fix that when we next update the tutorial. – Monica Cellio Aug 21 '16 at 17:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .