का सुझाव दें मेरे पास एक तालिका है जिसमें कॉलम date_trans, time_trans, कीमत है। चयन क्वेरी के बाद, मैं एक नया कॉलम "गणना" जोड़ना चाहता हूं जिसे मूल्य कॉलम के लगातार बराबर मानों के रूप में गणना की जाएगी और अंतिम पंक्तियों वाली पिछली पंक्तियों को अंतिम परिणाम से हटा दिया जाएगा। अपेक्षित आउटपुट देखें:एक क्वेरी अनुकूलित करें या LINQ समकक्ष
date_trans time_trans price **Count**
2011-02-22 09:39:59 58.02 1
2011-02-22 09:40:03 58.1 *ROW WILL BE REMOVED
2011-02-22 09:40:07 58.1 *ROW WILL BE REMOVED
2011-02-22 09:40:08 58.1 3
2011-02-22 09:40:10 58.15 1
2011-02-22 09:40:10 58.1 *ROW WILL BE REMOVED
2011-02-22 09:40:14 58.1 2
2011-02-22 09:40:24 58.15 1
2011-02-22 09:40:24 58.18 *ROW WILL BE REMOVED
2011-02-22 09:40:24 58.18 *ROW WILL BE REMOVED
2011-02-22 09:40:24 58.18 3
2011-02-22 09:40:24 58.15 1
कृपया
वर्तमान में मेज से चयन करने के लिए एक एसक्यूएल क्वेरी या LINQ अभिव्यक्ति का सुझाव, मैं इसे एक का चयन क्वेरी और सभी चयनित पंक्तियों के माध्यम से पाशन हो कर सकते हैं, लेकिन जब लाखों लोगों का चयन पंक्तियों में घंटों लगते हैं।
मेरे वर्तमान कोड:
string query = @"SELECT date_trans, time_trans, price
FROM tbl_data
WHERE date_trans BETWEEN '2011-02-22' AND '2011-10-21'
AND time_trans BETWEEN '09:30:00' AND '16:00:00'";
DataTable dt = oUtil.GetDataTable(query);
DataColumn col = new DataColumn("Count", typeof(int));
dt.Columns.Add(col);
int priceCount = 1;
for (int count = 0; count < dt.Rows.Count; count++)
{
double price = Convert.ToDouble(dt.Rows[count]["price"]);
double priceNext = (count == dt.Rows.Count - 1) ? 0 : Convert.ToDouble(dt.Rows[count + 1]["price"]);
if (price == priceNext)
{
priceCount++;
dt.Rows.RemoveAt(count);
count--;
}
else
{
dt.Rows[count]["Count"] = priceCount;
priceCount = 1;
}
}
मुझे लगता है कि एसक्यूएल में विश्लेषणात्मक कार्यों के साथ यह संभव है। देर हो चुकी है इसलिए मेरा दिमाग अब इसे संसाधित करने में सक्षम नहीं है, लेकिन जब मुझे विश्राम किया जाता है, तो मैं वापस आऊंगा और देखूंगा कि आपको अभी भी जवाब की आवश्यकता है या नहीं। लेकिन मुझे लगता है कि आपको [इस उत्तर] को देखकर शुरू करना चाहिए (http://stackoverflow.com/questions/7854854/getting-all-consecutive-rows-differing-by-certain-value) और यह विश्लेषणात्मक कार्यों का उपयोग कैसे करता है। – Ally