Commit a9aacea8 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Split database.sql into schema.sql and examples.sql

parent 44c3338e
Loading
Loading
Loading
Loading

comments/examples.sql

0 → 100644
+42 −0
Original line number Diff line number Diff line
-- Example queries

-- get comments for a particular member

SELECT * FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE targets.domain = ? AND targets.type = ? AND targets.cls = ? AND targets.member = ?

-- get 100 most recent comments

SELECT * FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE targets.domain = ?
ORDER BY created_at DESC LIMIT 100

-- get number of comments for each target

SELECT
    target.type AS type,
    target.cls AS cls,
    target.member AS member,
    count(*) AS cnt
FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE target.domain = ?
GROUP BY target.id

-- get number of comments for each class (including comments for class members)

SELECT
    target.cls AS cls,
    count(*) AS cnt
FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE target.domain = ? AND target.type = 'class'
GROUP BY target.cls

-- get users with most upvotes

SELECT
    user.username,
    SUM(c.vote) AS votes
FROM users JOIN voted_comments c ON c.user_id = users.id
GROUP BY user.id
ORDER BY votes DESC
+0 −42
Original line number Diff line number Diff line
@@ -71,45 +71,3 @@ CREATE VIEW voted_comments AS SELECT
    SUM(v.value) AS vote
FROM visible_comments c LEFT JOIN votes v ON c.id = v.comment_id;
-- Example queries

-- get comments for a particular member

SELECT * FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE targets.domain = ? AND targets.type = ? AND targets.cls = ? AND targets.member = ?

-- get 100 most recent comments

SELECT * FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE targets.domain = ?
ORDER BY created_at DESC LIMIT 100

-- get number of comments for each target

SELECT
    target.type AS type,
    target.cls AS cls,
    target.member AS member,
    count(*) AS cnt
FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE target.domain = ?
GROUP BY target.id

-- get number of comments for each class (including comments for class members)

SELECT
    target.cls AS cls,
    count(*) AS cnt
FROM visible_comments c JOIN targets ON c.target_id = targets.id
WHERE target.domain = ? AND target.type = 'class'
GROUP BY target.cls

-- get users with most upvotes

SELECT
    user.username,
    SUM(c.vote) AS votes
FROM users JOIN voted_comments c ON c.user_id = users.id
GROUP BY user.id
ORDER BY votes DESC