Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

145
Views
Supabase Sum Amount specific field

My supabase query with nuxt3:

const client = useSupabaseClient()
const { data: expenses } = await useAsyncData('count', async () => {
  const { data, count } = await client.from<Expenses>('expenses').select('amount, currency', { count: 'exact' })
  return { data, count }
})
console.log('useAsyncData :', expenses.value)

This is my result:

enter image description here

I want to sum of amount and group by currency

Result I want:

const result = { 0: 33800, 1: 10 }

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You can use the transform property of useAsyncData to manipulate the result of the operation. The code (surely could be improved):

    const { data: expenses } = await useAsyncData("count", async () => {
        const { data } = await ...
        return data;
    }, {
        transform: (data) => {
            const result = {};

            const groups = data.reduce((acc, d) => {
                const found = acc.find((a) => a.currency === d.currency);
                const value = { amount: d.amount };
                if (!found) {
                    acc.push({ currency: d.currency, data: [value] });
                } else {
                    found.data.push(value);
                }
                return acc;
            }, []);

            groups.forEach((group) => {
                result[group.currency] = group.data.map(i => i.amount).reduce((a, b) => a + b);
            });

            return result;
        }
    });

Will return

{
  "0": 33800,
  "1": 10
}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!