मेरे पास निम्न प्रारूप में कॉलम के साथ एक टेबल है जहां host_names दोहराया जाता है और एक ही होस्ट में इसके खिलाफ अनुपालन और गैर-अनुपालन दोनों मान हो सकते हैं। मैं एक प्रश्न कैसे लिख सकता हूं जो प्रत्येक host_name की जांच करता है और इसे गैर-अनुपालन के रूप में चिह्नित करता है यदि इसकी किसी भी पंक्ति में गैर-अनुपालन है।

compliance  host_name
Compliant   Host1
Non-Compliant   Host1
Compliant   Host2
Non-Compliant   Host3
Compliant   Host4

उदाहरण के लिए: उपरोक्त तालिका में, Host1 की दो पंक्तियों में अनुपालन और गैर-अनुपालन दोनों मान हैं। चूंकि मान में से एक गैर-अनुपालन है, मैं उस होस्ट को एक बार लेना चाहता हूं और निम्नलिखित प्रारूप में एक तालिका बनाना चाहता हूं।

compliance  host_name
Non-Compliant   Host1
Compliant   Host1
Non-Compliant   Host3
Compliant   Host4
0
Ankit Vashistha 27 अक्टूबर 2020, 20:24

1 उत्तर

सबसे बढ़िया उत्तर

केवल गैर-अनुपालक होस्ट दिखाने के लिए, अपनी क्वेरी में | where compliance="Non-Compliant" जोड़ें।

उन मेजबानों को देखने के लिए जो गैर-अनुपालन हैं या दोनों अनुपालन करते हैं और नहीं, इस रन-एनीवेयर उदाहरण क्वेरी का प्रयास करें।

|  makeresults 
|  eval _raw="compliance  host_name
Compliant   Host1
Non-Compliant   Host1
Compliant   Host2
Non-Compliant   Host3
Compliant   Host4" 
| multikv forceheader=1
```Everything above just sets up test data```
```Next, combine compliance values by host```
| stats values(compliance) as compliance by host_name
```Show only those that are non-compliant or both compliant and non-compliant```
| where (mvcount(compliance)>1 OR compliance="Non-Compliant")
1
RichG 27 अक्टूबर 2020, 18:10