3

プログラマーではありませんが、data.stackexchange.com を使用しています。パブリック SE データ エクスプローラーにクエリを実行していますが、指定した列名が無効です。また、カウント (投稿) とカウント (投票) を指定するにはどうすればよいですか? data.se にクエリを実行し、db スキーマを知っている人は誰でも、このコードを修正するのに役立ちますか?

Select Count (u.Id)
From Users u 
Left Join Posts p on u.Id = p.OwnerUserId
Left join SuggestedEdits e on u.Id = e.OwnerUserId
left join Votes v on u.Id = v.UserId
WHERE ((u.CreationDate BETWEEN 'qwerty' AND 'qwerty')
AND (p.CreationDate BETWEEN 'qwerty' AND 'qwerty')
AND (p.ClosedDate is null)
OR (e.CreationDate BETWEEN 'qwerty' AND 'qwerty'))
AND Count (Posts) = x
OR Count (Votes) = y
Group by u.CreationDate, p.OwnerUserId, UserTypeId, u.DisplayName, p.CreationDate
4

1 に答える 1

2

ここにあるCompose Queryオプションを試しましたか。そのリンクをクリックすると、サイドバーの右側にデータベース スキーマが表示されます。

サイドバーは非表示にすることができます。リンクをクリックするだけで再度表示できます。それはあなたが必要とするものですか?

編集

あなたが正確に何をしようとしているのか、まだよくわかりません。私があなたの立場なら、最初に個々のテーブルのいくつかの簡単なクエリを実行することから始めます。このようにして、そこに保存されているデータを確認できます。

このクエリを実行して結果を確認します。

SELECT *
FROM Users
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 09:00:00'

このクエリを実行して結果を確認します。

SELECT *
FROM Posts
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 08:10:00'

このクエリを実行して結果を確認します。

SELECT *
FROM Votes
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 08:10:00'

SuggestedEdits テーブルを他の場所で使用していないように見えるため、結合に SuggestedEdits テーブルを含めた理由がわかりません。だからそれを残してください。

データがどのように見えるかを確認したら、それらをつなぎ合わせて目的を見つけることができるはずです。まだわからないのはどれですか?うまくいけば、このような何かがあなたが始めるのに役立つでしょう. このクエリはいくつかの結果を返しますが、それがあなたの求めているものかどうかはわかりません.

SELECT Count(u.Id), Count(p.Id), Count(v.Id)
FROM Users u
LEFT JOIN Posts p on u.Id = p.OwnerUserId
LEFT JOIN Votes v on u.Id = v.UserId
WHERE u.CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 09:00:00'
GROUP BY u.CreationDate, p.OwnerUserId, v.VoteTypeId, u.DisplayName, p.CreationDate
于 2012-09-27T19:40:20.323 に答える