lib/queries/records_rank.ex

defmodule EctoPSQLExtras.RecordsRank do
  @behaviour EctoPSQLExtras

  def info do
    %{
      title: "All tables and the number of rows in each ordered by number of rows descending",
      index: 20,
      order_by: [estimated_count: :desc],
      columns: [
        %{name: :schema, type: :string},
        %{name: :name, type: :string},
        %{name: :estimated_count, type: :integer}
      ]
    }
  end

  def query(_args \\ []) do
    """
    /* ECTO_PSQL_EXTRAS: All tables and the number of rows in each ordered by number of rows descending */

    SELECT
      schemaname AS schema, relname AS name,
      n_live_tup AS estimated_count
    FROM
      pg_stat_user_tables
    ORDER BY
      n_live_tup DESC;
    """
  end
end