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 7178877
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T17:00:42+00:00 2026-05-28T17:00:42+00:00

I have a very large table with an indexed datetime field. I want to

  • 0

I have a very large table with an indexed datetime field. I want to do by group processing on the dataset by month and only output the last observation in each month.

The problem is that it doesn’t contain a month field so I can’t use something like this:

if last.month then do;
  output;
end;

Is there a way I can achieve this kind of behaviour without having to add a month field in a previous datastep? The table is 50 gig compressed so I want to avoid any unnecessary steps.

Thanks

  • 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-28T17:00:43+00:00Added an answer on May 28, 2026 at 5:00 pm

    You can actually achieve this using ‘by groupformat’ against your original dataset, formatting the datetime field as ‘dtmonyy5.’ As the name implies, this groups by the formatted values instead of the original.

    data new1;
    set old;
    format datetime dtmonyy5.;
    by groupformat datetime;
    if last.datetime;
    run;
    

    Another method is to use Proc Summary, although this can be memory intensive, particularly against large datasets. Here is the code.

    proc summary data=old nway;
    class datetime;
    format datetime dtmonyy5.;
    output out=new2 (drop=_:) maxid(datetime(_all_))=;
    run;
    

    Just a quick note on the previous answer, the ‘month’ function works against date fields, not datetime, so you would need to add the datepart function to the line.

    month = month(datepart(datetime));
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a very large table (800GB) which has a DATETIME field which is
Let's say I have a very large MySQL table with a timestamp field. So
I have a very large dataset - millions of records - that I want
I have a very large table with a fulltext indexed column. If I partition
I have a very large table of over 9 million rows and in my
I also have a very large table in SQL Server (2008 R2 Developer Edition)
I have a very large table in my database and I am starting to
I have a very large database (~100Gb) primarily consisting of two tables I want
I'm using Oracle, and I have a very large table. I need to check
Our application has a very large, wide table of transactional data. We have 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.