this post was submitted on 27 Dec 2023
544 points (96.7% liked)

Programmer Humor

19623 readers
2 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 30 points 11 months ago (21 children)

if you don't believe that adding more structure to the absolute maniacal catastrophe that is sql is a good thing then i'm going to start to have doubts about your authenticity as a human being

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago) (13 children)

Me trying to remember on whose output data having, count, sum, etc. work

Once you know functions you would have no reason to go back.
I propose we make SQL into this:

const MAX_AMOUNT = 42, MIN_BATCHES = 2

database
    .from(table)
    .where(
        (amount) => amount < MAX_AMOUNT,
        table.field3
    )
    .select(table.field1, table.field3)
    .group_by(table.field1)
    .having(
        (id) => count(id) >MIN_BATCHES
        table.field0
    )

(Sorry for any glaring mistakes, I'm too lazy right now to know what I'm doing)

..and I bet I just reinvented the wheel, maybe some JavaScript ORM?

[–] [email protected] 3 points 11 months ago (5 children)

Well, if you lose the OOPism of those dots, we can talk.

Anyway, I'm really against the "having" tag. You need another keyword so that you can apply your filter after the group by?

[–] [email protected] 1 points 11 months ago (1 children)

Boy then are you going to hate QUALIFY

[–] [email protected] 2 points 11 months ago

Yes, I do. It's a lot of effort and hidden functionality to try to paper over the fact that the statements do not compose.

load more comments (3 replies)
load more comments (10 replies)
load more comments (17 replies)