Mi consulta supabase con 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)Este es mi resultado:
Quiero sumar la cantidad y agrupar por moneda
Resultado que quiero:
resultado constante = { 0: 33800, 1: 10 }
Puede usar la propiedad transform de useAsyncData para manipular el resultado de la operación. El código (seguramente podría mejorarse):
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; } });volveré
{ "0": 33800, "1": 10 }