Order By

πŸ‘¨β€πŸ’Ό Ok ok, hear me out. It's awesome that we can search by our user's names and usernames. But what would be more awesome is if the users were sorted by how active they've been. We don't want to have a user who hasn't added or updated a note in months or years coming up ahead of a user who adds and updates notes on a daily basis.
We want our users to find the most active users. So let's sort things by how active they've been. We'll do this by identifying each user's most recently updated note. We'll use the updatedAt of the most recently updated note. And then sort the users we've found by that field for each of them.
πŸ¦‰ Order By can be pretty straightforward:
SELECT id, title, content from Review ORDER BY updatedAt LIMIT 30;
But it can also be more complicated using a nested query, which is what we'll need to do:
SELECT
	id,
	name,
	content
from
	Ship as ship
ORDER BY
	(
		SELECT
			avgRating
		FROM
			(
				SELECT
					ship.id,
					AVG(shipReview.rating) AS avgRating
				FROM
					Ship ship
					INNER JOIN ShipReview shipReview ON shipReview.subjectId = ship.id
				GROUP BY
					ship.id
			) AS shipRatings
		WHERE
			shipRatings.id = ship.id
	) DESC
LIMIT
	50
πŸ‘¨β€πŸ’Ό Luckily, our ORDER BY won't be quite as complicated. Nested queries like this are one example of the power of SQL!
It's easiest to think of the nested query on its own before combining it with the parent query. So consider the requirement:
  1. Select updatedAt
  2. From the Note model
  3. Where the ownerId matches the user.id
  4. Order by the updatedAt descending (DESC)
  5. Get only the first one (LIMIT)
Once you have that, then you can wrap that in an ORDER BY and you're golden.
Remember, ChatGPT can help guide you on this one or if you really get stuck you can check the diff tab.
To test this one out, perform a search, then open the second user, and edit one of their notes. Go back and perform the same search and that user should show up on top.
Login to get access to the exclusive discord channel.
  • πŸ’Ύdata
    Code snippets in workshop app
    remich 🌌:
    What is used to include the code snippets in the workshop app? I'd like to have syntax-highlighted P...
    • βœ…1
    1 Β· 10 days ago
  • general
    Migration to Vite: Server-only module referenced by client
    Fabian 🌌:
    Hi, I'm working on migrating to Vite following the remix docs (https://remix.run/docs/en/main/guides...
    • βœ…1
    1 Β· 2 months ago
  • πŸ’Ύdata
    Undesired behaviors while running the data-modeling workshop
    juliano.brasil 🌌:
    After pulling the latest updates I started experiencing 2 undesired behaviors while running the wor...
    • βœ…1
    2 Β· 4 months ago
  • πŸ’Ύdata
    πŸ“forms
    πŸ”­foundations
    Reviewing foundations, Mutations, Actions
    silvanet πŸš€ 🌌:
    Forgive me for this. I went over the file size limit. I don't want to sign up for being able to exce...
    • βœ…1
    2 Β· 5 months ago
  • πŸ’Ύdata
    a very large insert
    osmancakir πŸš€ 🌌:
    hi all, I need to perform seeding to my deployment. I followed the steps in the database documentati...
    • βœ…1
    2 Β· 5 months ago
  • πŸ’Ύdata
    πŸ“forms
    Getting a TS error that is not present in the course files
    OtterlyPunk:
    So I'm working in parallel and I'm feeling the problem is I'm using a new version of something in my...
    • βœ…2
    12 Β· 6 months ago
  • general
    Welcome to EpicWeb.dev! Say Hello πŸ‘‹
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    This is the first post of many hopefully!
    • 17
    78 Β· a year ago
  • general
    Remix Vite Plugin
    Binalfew πŸš€ 🌌:
    <@105755735731781632> Now that remix officially supports vite (though not stable) what does it mean...
    • βœ…1
    3 Β· a year ago
  • πŸ’Ύdata
    Prisma Typed SQL
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    Hey <@&1123674184959148043> friends, check out the new Typed SQL feature in Prisma! I've added an ex...
    • 2
    • 2
    0 Β· 2 months ago
  • general
    πŸ”­foundations
    Solutions video on localhost:5639 ?
    quang πŸš€ 🌌:
    Hi, so I'm having a hard time navigating (hopefully will be better with time) The nav on epicweb.de...
    • βœ…1
    9 Β· a year ago
  • πŸ’Ύdata
    Multi-Column Index - How does it eliminate the B-tree?
    Darren πŸš€ 🌌:
    So I just finished the Query Optimization - 02 Multi-Column Index lesson and was confused by the fol...
    • βœ…1
    2 Β· 3 months ago
  • general
    Epicshop is now social and mobile friendly!
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    I'm excited to announce that now the Epic Web workshops are mobile friendly! https://foundations.ep...
    • πŸŽ‰2
    0 Β· 4 months ago
  • πŸ’Ύdata
    πŸ“forms
    πŸ”­foundations
    How can I do this?
    silvanet πŸš€ 🌌:
    Viewing the Intro (from the Workshop) for Mutations, the course has an embedded video where Kent exp...
    • βœ…1
    3 Β· 5 months ago
  • πŸ’Ύdata
    Query optimization for queries generated by prisma
    Allan 🌌:
    Hi everyone! I finished the data modeling workshop this week and was inspired to do some query optim...
    • βœ…1
    2 Β· 5 months ago
  • πŸ’Ύdata
    general
    πŸ“forms
    πŸ”­foundations
    double underscore?
    trendaaang 🌌:
    What with the `__note-editor.tsx`? I don't see that in the Remix docs and I don't remember Kent talk...
    • βœ…1
    2 Β· 5 months ago
  • πŸ”auth
    πŸ’Ύdata
    08. ROLE-BASED ACCESS / 02. ROLES SEED - migration to local vs production
    Fabian 🌌:
    So I'm in a bit over my head with this one, in particular with how migration works in a local env vs...
    • βœ…1
    1 Β· 5 months ago
  • πŸ’Ύdata
    data modeling 06/02 is missing part of the prompt
    Allan 🌌:
    In Data Modeling 06/02 the files include `server/index.ts` but there are no guiding emojis, no promp...
    • βœ…1
    2 Β· 5 months ago
  • πŸ’Ύdata
    Why does TS not like Buffer being used when the return type of the blob appears to be Buffer?
    OtterlyPunk:
    I'm looking at the return types from Prisma and it appears that the `petImage.blob` is a `Buffer` ty...
    • βœ…2
    5 Β· 6 months ago
  • πŸ’Ύdata
    πŸ”auth
    Prisma batching in the Require Authorized (07/03/solution)
    ajara 🌌 πŸš€:
    When I did the `requireUser` function in `auth.server.ts` I thought about using `requireUserId` func...
    • βœ…1
    4 Β· 6 months ago
  • πŸ’Ύdata
    πŸ”­foundations
    Handle Missing Data - Error when i'm using invariantResponse
    Luan.ibarra 🌌:
    Hello, I'm trying to use the invariantResponse utility from // "#app/utils/misc.ts" to do this in a...
    • βœ…2
    2 Β· 6 months ago
  • πŸ’Ύdata
    Data Modeling: a real world scenario
    trendaaang 🌌:
    Kent, In the data modeling workshop, you mentioned that polymorphism is generally a bad idea in dat...
    • βœ…1
    3 Β· 6 months ago
  • πŸ”­foundations
    πŸ’Ύdata
    general
    πŸ“forms
    πŸ”auth
    Native Logging
    trendaaang 🌌:
    I was thinking that it could be useful to log every CRUD operation to help track down errors. Is tha...
    • βœ…1
    6 Β· 6 months ago
  • πŸ’Ύdata
    πŸ“forms
    Issues with child routes when loading a modal with actions (server/client)
    OtterlyPunk:
    I've set up a mini-project to go through the first set of videos and I'm having issues with the form...
    • βœ…1
    7 Β· 7 months ago
  • general
    The video play is pretty laggy currently
    QzCurious 🌌:
    I thought I should tag you for this <@105755735731781632>. Please take a look if something wrong.
    • βœ…2
    9 Β· 7 months ago
  • general
    New Workshop Scheduled
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    Hey Epic Web devs! I wanted to let you know before everyone else on here: https://www.epicweb.dev/ev...
    • 2
    0 Β· 7 months ago
  • general
    Deploying an exercise
    Khoi πŸš€ 🌌:
    Dear <@105755735731781632> , First of all, I really appreciate your effort in building this EPIC cou...
    • βœ…1
    1 Β· 7 months ago
  • general
    "Start App" throws error: Error: Cannot add empty string to PrefixLookupTrie
    Martin 🌌:
    βœ— npm run start > start > kcdshop start [playground:4000] [playground:4000] > dev [playground:4000...
    • βœ…1
    7 Β· a year ago
  • general
    πŸ“forms
    Can't start the playground
    trendaaang 🌌:
    Been a minute since I last worked on this course. Just tried running the app and was notified that t...
    • βœ…1
    3 Β· 8 months ago
  • general
    Question about the Workshop App tabs
    sjollivier 🌌:
    Just started the course. I might have missed this in the Getting Started video, but how should I be ...
    • βœ…1
    1 Β· 8 months ago
  • general
    "Start App" throws TypeError: Cannot read properties of undefined (reading 'toLowerCase')
    ntin89 🌌:
    ```TypeError: Cannot read properties of undefined (reading 'toLowerCase') at userAgentContains (...
    • βœ…1
    4 Β· 8 months ago
  • general
    Epic React Workshop Series
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    Hey <@&1123674184959148043> folks! I'm excited to announce this to you all first before I post on so...
    • 2
    • πŸŽ‰1
    6 Β· 8 months ago