Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3840510
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T15:32:17+00:00 2026-05-19T15:32:17+00:00

I have a MYSQL table that stores data for solar generation at my home.

  • 0

I have a MYSQL table that stores data for solar generation at my home. There are two inverter devices that I’m polling which comprise the data in this table. To simplify, the pertinent part of my table structure (with descriptions) is something like:

id <auto_increment>
addr <int address of the inverter>
etotal <total generation since the device has been online>

I am trying to find the difference between consecutive records per inverter so that I can tell how much energy was generated in the time period between records (or between whatever period I eventually choose). If the records were inserted consistently, I could do something like:

SELECT (t2.etotal - t1.etotal) AS eperiod 
                              FROM solars AS t1, solars AS t2 
                              WHERE t1.id+2 = t2.id AND t1.created_at >= CURDATE() 
                              AND t1.addr = 245 AND t2.addr = 245 ORDER BY t1.id;

However, this doesn’t always function as desired, and it seems like a poor choice. The only other thought I’ve had is to select to a temporary table with auto-incrementing id, then do a similar select from that table. Interested in a single query solution if possible.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T15:32:18+00:00Added an answer on May 19, 2026 at 3:32 pm
    SELECT  @ptotal - etotal, @ptotal := etotal
    FROM    solars
    WHERE   created_at >= CURDATE() 
            AND addr = 245
    ORDER BY
            created_at, id
    

    Ignore the second column when processing the results or wrap it into a nested query (though it can be a little more slow):

    SELECT  diff
    FROM    (
            SELECT  @ptotal - etotal AS diff, @ptotal := etotal
            FROM    solars
            WHERE   created_at >= CURDATE() 
                    AND addr = 245
            ORDER BY
                    created_at, id
            ) q
    

    Create a composite index on (addr, created_at, id) for this to work fast.

    Should also support diesel generators (not tested).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a table say, ITEM, in MySQL that stores data as follows: ID
I have a MySQL table pedigree that stores all my interconnecting parentage data as
I have a table (MySQL) data that stores a bunch of signup information. What
I have a table based app that stores data on a mysql server, it
I have mysql table that has a column that stores xml as a string.
I have a table called Comments that stores messages between two users, and the
I currently have a table in MySQL that stores values normally, but I want
we have a form which inserts event data into mysql table, this then feeds
I have a table Items which stores fetched book data from Amazon. This Amazon
I have a mysql table that stores a mapping from an ID to a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.